ASP.NET - databaseforbindelse

ADO.NET er også en del af .NET-frameworket.

Funktionen for ADO.NET er at håndtere dataadgang. Gennem ADO.NET kan du operere med databaser.

Hvad er ADO.NET?

  • ADO.NET er en del af .NET-frameworket
  • ADO.NET består af en række klasser, der bruges til at operere med dataadgang
  • ADO.NET er helt baseret på XML
  • ADO.NET har ikke Recordset-objekt, hvilket adskiller sig fra ADO

Opret databaseforbindelse

Vi planlægger at bruge den tidligere brugte Northwind-database.

Først importerer vi navnerummet "System.Data.OleDb". Vi har brug for dette navnerum for at kunne operere med Microsoft Access og andre OLE DB-databaseprovider. Vi vil oprette en forbindelse til databasen i Page_Load-subrutinen. Vi opretter en dbconn-variabel og tildeler den en ny OleDbConnection-klasse, som har en forbindelsesstreng, der kan angive OLE DB og databasens placering. Derefter åbner vi denne databaseforbindelse:

<%@ 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:Denne forbindelsesstreng skal være en kontinuerlig streng uden linjeskift!

Opret databasekommando

For at specificere de poster, der skal hentes fra databasen, opretter vi en dbcomm-variabel og tildeler den en ny OleDbCommand. Denne OleDbCommand-klasse bruges til at udføre SQL-forespørgsler mod databasetabeller:

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

Opret DataReader

OleDbDataReader-klassen bruges til at læse en strøm af poster fra datakilden. Ved at kalde ExecuteReader-metoden på OleDbCommand-objektet kan du oprette 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>

Binde til Repeater-kontrol

Herefter binder vi denne DataReader til en Repeater-kontrol:

<%@ 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>Firmanavn</th>
<th>Navn på kontaktperson</th>
<th>Adresse</th>
<th>By</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>

Vis dette eksempel

Luk databaseforbindelse

Bemærk altid at lukke DataReader og databaseforbindelse efter brug af databaseadgang:

dbread.Close()
dbconn.Close()