Web Forms - 数据库连接


ADO.NET 也是 .NET 框架的组成部分。ADO.NET 用于处理数据访问。通过 ADO.NET,您可以操作数据库。

在线实例

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

  1. <%@ Import Namespace="System.Data.OleDb" %>
  2.  
  3. <script  runat="server">
  4. sub Page_Load
  5. dim dbconn,sql,dbcomm,dbread
  6. dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("/db/northwind.mdb"))
  7. dbconn.Open()
  8. sql="SELECT * FROM customers"
  9. dbcomm=New OleDbCommand(sql,dbconn)
  10. dbread=dbcomm.ExecuteReader()
  11. customers.DataSource=dbread
  12. customers.DataBind()
  13. dbread.Close()
  14. dbconn.Close()
  15. end sub
  16. </script>
  17.  
  18. <!DOCTYPE html>
  19. <html>
  20. <body>
  21.  
  22. <form runat="server">
  23. <asp:DataList
  24. id="customers"
  25. runat="server"
  26. cellpadding="2"
  27. cellspacing="2"
  28. borderstyle="inset"
  29. backcolor="#e8e8e8"
  30. width="100%"
  31. headerstyle-font-name="Verdana"
  32. headerstyle-font-size="12pt"
  33. headerstyle-horizontalalign="center"
  34. headerstyle-font-bold="True"
  35. itemstyle-backcolor="#778899"
  36. itemstyle-forecolor="#ffffff"
  37. footerstyle-font-size="9pt"
  38. footerstyle-font-italic="True">
  39.  
  40. <HeaderTemplate>
  41. Customers Table
  42. </HeaderTemplate>
  43.  
  44. <ItemTemplate>
  45. <%#Container.DataItem("companyname")%>  in
  46. <%#Container.DataItem("address")%>, <%#Container.DataItem("city")%>
  47. </ItemTemplate>
  48.  
  49. <FooterTemplate>
  50. Source: Northwind Database
  51. </FooterTemplate>
  52.  
  53. </asp:DataList>
  54. </form>
  55.  
  56. </body>
  57. </html>

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

  1. <%@ Import Namespace="System.Data.OleDb" %>
  2.  
  3. <script  runat="server">
  4. sub Page_Load
  5. dim dbconn,sql,dbcomm,dbread
  6. dbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("/db/northwind.mdb"))
  7. dbconn.Open()
  8. sql="SELECT * FROM customers"
  9. dbcomm=New OleDbCommand(sql,dbconn)
  10. dbread=dbcomm.ExecuteReader()
  11. customers.DataSource=dbread
  12. customers.DataBind()
  13. dbread.Close()
  14. dbconn.Close()
  15. end sub
  16. </script>
  17.  
  18. <!DOCTYPE html>
  19. <html>
  20. <body>
  21.  
  22. <form runat="server">
  23. <asp:Repeater id="customers" runat="server">
  24.  
  25. <HeaderTemplate>
  26. <table border="1" width="100%">
  27. <tr bgcolor="#b0c4de">
  28. <th>Companyname</th>
  29. <th>Contactname</th>
  30. <th>Address</th>
  31. <th>City</th>
  32. </tr>
  33. </HeaderTemplate>
  34.  
  35. <ItemTemplate>
  36. <tr bgcolor="#f0f0f0">
  37. <td><%#Container.DataItem("companyname")%> </td>
  38. <td><%#Container.DataItem("contactname")%> </td>
  39. <td><%#Container.DataItem("address")%> </td>
  40. <td><%#Container.DataItem("city")%> </td>
  41. </tr>
  42. </ItemTemplate>
  43.  
  44. <FooterTemplate>
  45. </table>
  46. </FooterTemplate>
  47.  
  48. </asp:Repeater>
  49. </form>
  50.  
  51. </body>
  52. </html>

什么是 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 提供商和数据库位置的连接字符串。然后我们打开数据库连接:

  1. <%@ 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 查询:

  1. <%@ 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 方法来创建的:

  1. <%@ 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 控件:

实例

  1. <%@ 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 和数据库连接:

  1. dbread.Close()
    dbconn.Close()