ASP.NET - Databasanslutning

ADO.NET är också en del av .NET-ramverket.

ADO.NET:s funktion är att hantera dataåtkomst. Genom ADO.NET kan du manipulera databasen.

Vad är ADO.NET?

  • ADO.NET är en del av .NET-ramverket
  • ADO.NET består av en uppsättning klasser som används för att hantera dataåtkomst
  • ADO.NET är helt baserat på XML
  • ADO.NET har inget Recordset-objekt, vilket skiljer sig från ADO

Skapa databasanslutning

Vi tänker använda Northwind-databasen som vi har använt tidigare.

Först, importera namnrymden "System.Data.OleDb". Vi behöver denna namnrymd för att kunna hantera Microsoft Access och andra OLE DB-databasleverantörer. Vi kommer att skapa en anslutning till denna databas i Page_Load-subrutinen. Vi skapar en dbconn-variabel och tilldelar den en ny OleDbConnection-klass, som har en anslutningssträng som anger OLE DB och databasens plats. Sedan öppnar vi denna databasanslutning:

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

Kommentar:Denna anslutningssträng måste vara en kontinuerlig sträng utan avbrott!

Skapa databaskommando

För att specificera vilka poster som ska hämtas från databasen skapar vi en dbcomm-variabel och tilldelar den en ny OleDbCommand. Denna OleDbCommand-klass används för att utföra SQL-frågor mot databastabeller:

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

Skapa DataReader

OleDbDataReader-klassen används för att läsa poster från en datakälla. Genom att anropa ExecuteReader-metoden på OleDbCommand-objektet kan du skapa en 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>

Bind till Repeater-kontroll

Därefter, binder vi denna DataReader till en Repeater-kontroll:

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