Datenbankinhalte anzeigen

Datenbank Inhalte mit ASP.NET Web Pages anzuzeigen ist einfach. Zuerst benötigen wir die Datenbank selbst. Im Video und für das Code Snippet wird eine Datenbank mit dem Namen Kontaktdaten verwendet. Diese kann man einfach in WebMatrix erstellen. Jetzt muss noch eine Tabelle mit dem Namen Kontakte erstellt werden, die Tabelle enthält die Felder Email, Vorname und Nachname, wie in der folgenden Abbildung:

schema-kontakte

Ist das Schema angelegt, kann nun in der Webseite damit gearbeitet werden. Das Code Snippet unten enthält die fertige Seite die genau auf dieses Schema zugreift. Erwähnenswert ist die Zeile 4

 var kontakte = db.Query(“SELECT * FROM Kontakte”);

In dieser Zeile wird das Select Statement an die Datenbank geschickt und die Resultate wandern nun in die Variable kontakte. Die Variable enthält nun eine Liste von Objekten die man mittels einer foreach Anweisung durchgehen kann. Jedes dieser Objekte ist ein dynamische Objekt, zur Laufzeit zusammengebaut mit den gleichen Eigenschaftsnamen die die Datenbank-Tabelle als Felder definiert hat.

Das dynamische Kontakt Objekt enthält somit die Zugriffseigenschaften Email, Vorname und Nachname. Diese wird mittels der Razor Syntax entsprechend angesprochen z.B.

 @kontakt.Vorname

gibt den Vornamen aus der momentanen Zeile aus dem Feld Vorname zurück.

How-To Video

Source Code

    1: @{
    2:     var db = Database.Open("Kontaktdaten");
    3:     
    4:     var kontakte = db.Query("SELECT * FROM Kontakte");
    5: }
    6: <!DOCTYPE html>
    7:  
    8: <html lang="en">
    9:     <head>
   10:         <meta charset="utf-8" />
   11:         <title></title>
   12:     </head>
   13:     <body>
   14:         <header>
   15:             <h1>Meine Kontakte</h1>
   16:         </header>
   17:             <ul>
   18:         @foreach( var kontakt in kontakte )
   19:         {
   20:                 <li>@kontakt.Vorname @kontakt.Nachname (@kontakt.Email)</li>
   21:         }
   22:             </ul>
   23:         </body>
   24: </html>