ASP.NET Web Forms – Datenbankverbindung
In diesem Abschnitt erklären wir es Wie Datenbankverbindungen in ASP.NET implementiert werden. Im folgenden Inhalt kommen Sie mit ADO.NET in Kontakt.ADO.NET ist auch Teil des .NET Frameworks. Für den Datenzugriff wird ADO.NET verwendet. Über ADO.NET können Sie die Datenbank betreiben.
Beispiel
Datenbankverbindung – an DataList-Steuerelement binden
Datenbankverbindung – an die Repeater-Steuerung gebunden
ADO.NET ist Teil des .NET Frameworks
ADO.NET besteht aus einer Reihe von Klassen, die den Datenzugriff verwalten
ADO.NET basiert vollständig auf XML
ADO.NET verfügt im Gegensatz zu ADO über kein Recordset-Objekt
In unserem Beispiel verwenden wir die Northwind-Datenbank.
Importieren Sie zunächst den Namespace „System.Data.OleDb“. Wir benötigen diesen Namensraum, um Microsoft Access und andere OLE DB-Datenbankanbieter zu betreiben. Die Verbindung zu dieser Datenbank erstellen wir in der Subroutine Page_Load. Wir erstellen eine dbconn-Variable und weisen ihr eine neue OleDbConnection-Klasse mit einer Verbindungszeichenfolge zu, die den OLE DB-Anbieter und den Datenbankspeicherort angibt. Dann öffnen wir die Datenbankverbindung:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconndbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath( "northwind.mdb"))dbconn.Open()end sub</script>
Hinweis: Diese Verbindungszeichenfolge muss eine fortlaufende Zeichenfolge ohne Zeilenumbrüche sein!
Um die aus der Datenbank abzurufenden Datensätze anzugeben, erstellen wir eine dbcomm-Variable und weisen ihr eine neue OleDbCommand-Klasse zu. Diese OleDbCommand-Klasse wird verwendet, um SQL-Abfragen für Datenbanktabellen durchzuführen:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcommdbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT * FROM Kunden"dbcomm=New OleDbCommand(sql,dbconn)end sub</script>
Die OleDbDataReader-Klasse wird zum Lesen eines Datensatzstroms aus einer Datenquelle verwendet. Der DataReader wird durch Aufrufen der ExecuteReader-Methode des OleDbCommand-Objekts erstellt:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source= " & server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT * VON Kunden"dbcomm=New OleDbCommand(sql,dbconn)dbread=dbcomm.ExecuteReader()end sub</script>
Dann binden wir den DataReader an das Repeater-Steuerelement:
<%@ Import Namespace="System.Data.OleDb" %><script runat="server">sub Page_Loaddim dbconn,sql,dbcomm,dbreaddbconn=New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source= " & server.mappath("northwind.mdb"))dbconn.Open()sql="SELECT * VON Kunden"dbcomm=New OleDbCommand(sql,dbconn)dbread=dbcomm.ExecuteReader()customers.DataSource=dbreadcustomers.DataBind()dbread.Close()dbconn.Close()end sub</script><html><body> <form runat="server"><asp:Repeater id="customers" runat="server"><HeaderTemplate><table><tr><th>Firmenname</th><th>Kontaktname</th><th>Adresse</th><th>Stadt</th></tr ></HeaderTemplate><ItemTemplate><tr><td><%#Container.DataItem("companyname")%></td><td><%#Contain er.DataItem("contactname")%></td><td><%#Container.DataItem("address")%></td><td><%#Container.DataItem("city")%> </td></tr></ItemTemplate><FooterTemplate></table></FooterTemplate></asp:Repeater></form></body></html>
Wenn Sie keinen Zugriff mehr auf die Datenbank benötigen, denken Sie daran, den DataReader und die Datenbankverbindung zu schließen:
dbread.Close()dbconn.Close()