最新的Web开发教程
 

ASP.NET Web窗体 - 数据库连接


ADO.NET也是.NET Framework的一部分。 ADO.NET可用来处理数据访问。 使用ADO.NET你可以操作数据库。


例子

例子

数据库连接-绑定到DataList控件

数据库连接-绑定到Repeater控件


什么是ADO.NET?

  • ADO.NET是.NET Framework的一部分
  • ADO.NET包括用于处理数据访问一组类的
  • ADO.NET是完全基于XML
  • ADO.NET了,不像ADO,没有Recordset对象

创建数据库连接

我们将在我们的例子中使用Northwind数据库。

首先,导入"System.Data.OleDb"命名空间。 我们需要这个命名空间与Microsoft Access和其他的OLE DB数据库提供商合作。 我们将创建在Page_Load子程序与数据库的连接。 我们创建一个dbconn变量与标识OLE DB提供程序和数据库的位置连接字符串来连接新的OleDbConnection类。 然后,我们打开数据库连接:

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

Note:连接字符串必须是不换行连续串!


创建数据库命令

要指定记录从数据库中检索,我们将创建一个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>

绑定到一个中继器控制

然后我们绑定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()