9.9 ASP.NET und ADO.NET 

Internet-Datenbank
Eine Internet-Anwendung kann auch leicht mit einer Datenbank-Anwendung verbunden werden. Im nachfolgenden Programm werden die Inhalte einer Datenbank, die sich auf dem Webserver befindet, in einer Internetseite dargestellt.
Der Zugriff auf die Datenbank läuft auf die gleiche Weise ab, wie bereits im letzten Kapitel über ADO.NET beschrieben. Das Ergebnis der SQL-Abfrage muss nur noch mit einem geeigneten Server-Steuerelement verbunden werden.
Kommunikationsweg
Der Kommunikationsweg sieht jetzt wie folgt aus:
- Der Benutzer fordert über seinen Browser die Internetseite beim Webserver durch Eingabe der Adresse an.
- Auf dem Webserver wird eine Abfrage an die Datenbank generiert.
- Die Datenbank bzw. der Datenbank-Server sendet das Abfrage-Ergebnis an den Webserver zurück.
- Auf dem Webserver wird das Abfrage-Ergebnis passend für eine Internetseite formatiert und zum Rechner des Benutzers gesendet.
- Die Datentabelle wird im Browser des Benutzers angezeigt.
Abbildung 9.10 zeigt das Ergebnis.
Abbildung 9.10 Zugriff auf Datenbank auf dem Server
Es folgt der Code der Seite default.aspx in der Web-Anwendung mit dem Namen WebDatenbankAuswahl:
<html> <head> <title>WebDatenbankAuswahl</title> <%@ page language="VB" %> <%@ import namespace="System.Data.OleDb" %> <script runat="server"> Sub Page_Load() Dim con As New OleDbConnection Dim cmd As New OleDbCommand Dim reader As OleDbDataReader con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Temp\firma.mdb" cmd.Connection = con cmd.CommandText = "select * from personen" Try con.Open() reader = cmd.ExecuteReader() grid.DataSource = reader DataBind() reader.Close() Catch ex As Exception ausgabe.Font.Bold = True ausgabe.Text = ex.Message End Try con.Close() End Sub </script> </head> <body> <p>Datenbank-Tabelle</p> <asp:DataGrid id="grid" runat="server" /> <p><asp:Label id="ausgabe" runat="server" /></p> </body> </html>
Listing 9.10 Projekt »WebDatenbankAuswahl«, Datei »default.aspx«
Zur Erläuterung der Compiler-Direktiven:
System.Data. OleDb
- Nach der Page-Direktive folgt die Direktive zum Import des Namensraums System.Data.OleDb.
OleDb
- Dadurch werden die Klassen zur Verfügung gestellt, die für den Zugriff auf eine OleDb-Datenbank, wie z. B. eine Access-Datenbank, benötigt werden.
Zur Erläuterung des Visual Basic-Blocks:
- Die Objekte für die Datenbank-Verbindung, den SQL-Befehl und den Reader für das Abfrage-Ergebnis werden so initialisiert und benutzt, wie es bereits im Kapitel über ADO.NET beschrieben ist.
Verzeichniswahl
- Falls die Access-Datei firma.mdb später im Internet im gleichen Verzeichnis liegen soll wie die Datei default.aspx, dann muss es im ConnectionString nur Data Source=firma.mdb heißen. Während der Entwicklung muss dazu die Datei firma.mdb im Basisverzeichnis des Entwicklungsservers platziert werden. Dies ist normalerweise C:\Programme\Gemeinsame Dateien\Microsoft Shared\DevServer\10.0.
- Auch in diesem Programm ist aufgrund der Fehleranfälligkeit des Vorgangs eine Ausnahmebehandlung notwendig.
DataGrid
- Das Server-Steuerelement grid vom Typ DataGrid repräsentiert die Ausgabetabelle.
- Der Eigenschaft DataSource dieses Elements wird das Abfrage-Ergebnis zugewiesen. Die Methode DataBind() sorgt für die Verbindung des Elements mit der Datenquelle.
- Das Element ausgabe ist ein Label, in dem ein möglicher Fehler angezeigt wird.
Zur Erläuterung des HTML-Containers:
- Hier stehen nur noch die Überschrift und zwei Server-Steuerelemente – den Rest übernimmt Visual Basic.