开发学院

您的位置:首页>教程>正文

教程正文

ASP.NET - 数据库连接

ASP.NET - 数据库连接

    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 类赋值给这个变量,这个 OleDbConnection 类带有一个连接字符串,可以指示 OLE DB 以及数据库的位置。然后我们打开此数据库连接:

    <%@ Import Namespace="System.Data.OleDb" %>
    
    <script runat="server">
    sub Page-Load
    dim 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-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 类用于从数据源中读取记录流。通过调用 OleDbCommand 对象的 ExecuteReader 方法,就可以创建 DataReader:

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