在我们的实例中,我们将使用 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> |
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> |
然后,我们绑定 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() |