9.9 ASP.NET und ADO.NET
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.
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.ACE.OLEDB.12.0;" &
"Data Source=C:\Temp\firma.accdb"
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:
- Nach der Page-Direktive folgt die Direktive zum Import des Namensraums System.Data.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.
- Falls die Access-Datei firma.accdb später im Internet im gleichen Verzeichnis liegen soll wie die Datei default.aspx, dann muss es im ConnectionString nur Data Source=firma.accdb heißen. Während der Entwicklung können Sie die Datei firma.accdb in einem lokalen Verzeichnis platzieren wie im obigen Beispiel.
- Auch in diesem Programm ist aufgrund der Fehleranfälligkeit des Vorgangs eine Ausnahmebehandlung notwendig.
- 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.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.