ASP.NET數(shù)據(jù)庫連接淺析
ASP.NET數(shù)據(jù)庫連接之前,讓我們先看看什么是ADO .NET?ADO .NET是 .NET Framework的一部分,它用來處理數(shù)據(jù)訪問問題。用ADO .NET你可以與數(shù)據(jù)庫一同工作。
ADO .NET是 .NET Framework的一部分
ADO .NET由一組處理數(shù)據(jù)訪問的類組成
ADO .NET完全基于XML
ADO .NET與ADO不同,它不具有Recordset對象
ASP.NET數(shù)據(jù)庫連接的建立
我們準(zhǔn)備在我們的示例中使用Northwind這個數(shù)據(jù)庫。
首先,導(dǎo)入命名空間“System.Data.OleDb”。我們需要這個命名空間來與Microsoft Access及其他數(shù)據(jù)庫提供商協(xié)同工作。我們將在Page_Load子程序中與數(shù)據(jù)庫建立連接。我們創(chuàng)建一個變量dbconn作為一個新的OleDbConnection類,它有一個連接字符串來指定OLE DB提供商及數(shù)據(jù)庫的位置。然后我們打開這個數(shù)據(jù)庫連接:
- ﹤%@ Import Namespace="System.Data.OleDb" %﹥
- ﹤script runat="server"﹥
- sub Page_Load
- dim dbconn
- dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
- data source=" & server.mappath("northwind.mdb"))
- dbconn.Open()
- end sub
- ﹤/script﹥
注意:連接字串必須是連續(xù)不換行的!
ASP.NET數(shù)據(jù)庫連接之創(chuàng)建數(shù)據(jù)庫命令
為了從數(shù)據(jù)庫中指定檢索的記錄,我們將創(chuàng)建一個變量dbcomm作為一個新OleDbCommand類。OleDbCommand類是為了對數(shù)據(jù)庫表發(fā)出SQL查詢:
- ﹤%@ Import Namespace="System.Data.OleDb" %﹥
- ﹤script runat="server"﹥
- sub Page_Load
- dim dbconn,sql,dbcomm
- dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
- data source=" & server.mappath("northwind.mdb"))
- dbconn.Open()
- sql="SELECT * FROM customers"
- dbcomm=New OleDbCommand(sql,dbconn)
- end sub
- ﹤/script﹥
ASP.NET數(shù)據(jù)庫連接之創(chuàng)建DataReader
OleDbDataReader類用來從數(shù)據(jù)源中讀取記錄流。DataReader是調(diào)用OleDbCommand對象的ExecuteReader方法來創(chuàng)建的:
- ﹤%@ Import Namespace="System.Data.OleDb" %﹥
- ﹤script runat="server"﹥
- sub Page_Load
- dim dbconn,sql,dbcomm,dbread
- dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
- data source=" & server.mappath("northwind.mdb"))
- dbconn.Open()
- sql="SELECT * FROM customers"
- dbcomm=New OleDbCommand(sql,dbconn)
- dbread=dbcomm.ExecuteReader()
- end sub
- ﹤/script﹥
ASP.NET數(shù)據(jù)庫連接之綁定到Repeater控件
然后我們綁定DataReader到一個Repeater控件:
- ﹤%@ Import Namespace="System.Data.OleDb" %﹥
- ﹤script runat="server"﹥
- sub Page_Load
- dim dbconn,sql,dbcomm,dbread
- dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
- data source=" & server.mappath("northwind.mdb"))
- dbconn.Open()
- sql="SELECT * FROM customers"
- dbcomm=New OleDbCommand(sql,dbconn)
- dbread=dbcomm.ExecuteReader()
- customers.DataSource=dbread
- customers.DataBind()
- dbread.Close()
- dbconn.Close()
- end sub
- ﹤/script﹥
- ﹤html﹥
- ﹤body﹥
- ﹤form runat="server"﹥
- ﹤asp:Repeater id="customers" runat="server"﹥
- ﹤HeaderTemplate﹥
- ﹤table border="1" width="100%"﹥
- ﹤tr﹥
- ﹤th﹥Companyname﹤/th﹥
- ﹤th﹥Contactname﹤/th﹥
- ﹤th﹥Address﹤/th﹥
- ﹤th﹥City﹤/th﹥
- ﹤/tr﹥
- ﹤/HeaderTemplate﹥
- ﹤ItemTemplate﹥
- ﹤tr﹥
- ﹤td﹥﹤%#Container.DataItem("companyname")%﹥﹤/td﹥
- ﹤td﹥﹤%#Container.DataItem("contactname")%﹥﹤/td﹥
- ﹤td﹥﹤%#Container.DataItem("address")%﹥﹤/td﹥
- ﹤td﹥﹤%#Container.DataItem("city")%﹥﹤/td﹥
- ﹤/tr﹥
- ﹤/ItemTemplate﹥
- ﹤FooterTemplate﹥
- ﹤/table﹥
- ﹤/FooterTemplate﹥
- ﹤/asp:Repeater﹥
- ﹤/form﹥
- ﹤/body﹥
- ﹤/html﹥
ASP.NET數(shù)據(jù)庫連接之關(guān)閉數(shù)據(jù)庫連接
在訪問過數(shù)據(jù)庫后,總是關(guān)閉不再需要的DataReader和數(shù)據(jù)庫連接:
- dbread.Close()
- dbconn.Close()
ASP.NET數(shù)據(jù)庫連接就向你介紹到這里了,希望你對ASP.NET數(shù)據(jù)庫連接有了一定的了解。
【編輯推薦】