ASP.NET Web Forms - 資料庫連接
在本節,我們講解了ASP.NET 中的資料庫連線是如何實現的。在以下的內容中,你將會接觸ADO.NET。ADO.NET 也是.NET 架構的組成部分。 ADO.NET 用於處理資料存取。透過ADO.NET,您可以操作資料庫。
實例
資料庫連接- 綁定到DataList 控件
資料庫連接- 綁定到Repeater 控件
ADO.NET 是.NET 架構的組成部分
ADO.NET 由一系列用於處理資料存取的類別組成
ADO.NET 完全基於XML
ADO.NET 沒有Recordset 對象,這點與ADO 不同
在我們的實例中,我們將使用Northwind 資料庫。
首先,導入"System.Data.OleDb" 命名空間。我們需要這個命名空間來操作Microsoft Access 和其他OLE DB 資料庫提供者。我們將在Page_Load 子例程中建立這個資料庫的連線。我們建立一個dbconn 變量,並為其賦值一個新的OleDbConnection 類,這個類別帶有指示OLE DB 提供者和資料庫位置的連接字串。然後我們打開資料庫連線:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconndbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath( "northwind.mdb"))dbconn.Open()end sub</script>
註:這個連接字串必須是沒有折行的連續字串!
為了指定需要從資料庫取回的記錄,我們將建立一個dbcomm 變量,並為其賦值一個新的OleDbCommand 類別。這個OleDbCommand 類別用來發出針對資料庫表的SQL 查詢:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcommdbconn=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>
OleDbDataReader 類別用於從資料來源讀取記錄流。 DataReader 是透過呼叫OleDbCommand 物件的ExecuteReader 方法來建立的:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=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>
然後,我們將DataReader 綁定到Repeater 控制項:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=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=dbreadcustomers.DataBind()dbread.Close()dbconn.Close()end sub</script><html><body>< form runat="server"><asp:Repeater id="customers" runat="server"><HeaderTemplate><table><tr><th>Companyname</th><th>Contactname</th><th>Address</th><th>City</th></tr ></HeaderTemplate><ItemTemplate><tr><td><%#Container.DataItem("companyname")%></td><td><%#Contain er.DataItem("contactname")%></td><td><%#Container.DataItem("address")%></td><td><%#Container.DataItem("city")%> </td></tr></ItemTemplate><FooterTemplate></table></FooterTemplate></asp:Repeater></form></body></html>
如果不再需要存取資料庫,請記得關閉DataReader 和資料庫連線:
dbread.Close()dbconn.Close()