ASP.NET 数据库连接
asp.net web forms - 数据库连接
ado.net 也是 .net 框架的组成部分。ado.net 用于处理数据访问。通过 ado.net,您可以操作数据库。
尝试一下 - 实例
什么是 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>
<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>
<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>
<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>
<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()
dbconn.close()