ASP.NET Web Forms - 資料庫連接


ADO.NET 也是 .NET 框架的組成部分。ADO.NET 用於處理數據訪問。通過 ADO.NET,您可以運算元據庫。


Examples

嘗試一下 - 實例

資料庫連接 - 綁定到 DataList 控件

資料庫連接 - 綁定到 Repeater 控件


什麼是 ADO.NET?

  • 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_Load
dim dbconn
dbconn=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_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>


創建 DataReader

OleDbDataReader 類用於從數據源中讀取記錄流。DataReader 是通過調用 OleDbCommand 對象的 ExecuteReader 方法來創建的:

<%@ 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>


綁定到 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>


關閉資料庫連接

如果不再需要訪問資料庫,請記得關閉 DataReader 和數據庫連接:

dbread.Close()
dbconn.Close()