Zum Inhalt springen
Der Guide für ein smartes Leben.
VG Wort Pixel
Mieten im Web

Datenbank und Kalender

Autor: Peter Schnoor • 13.8.2010 • ca. 4:30 Min

Inhalt
  1. Webprogrammierung mit ASP.net
  2. Datenbank und Kalender

Während die bisherigen Seiten bis auf die Menüsteuerung recht statisch sind, ändert sich das bei der Buchungsseite. Diese programmieren Sie serverseitig. Das Ergebnis wird als HTML-Seite an den Client gesendet. Je nach Auswahl und Eingabe von Daten unterscheidet sich daher die Clientseite.Für di...

Während die bisherigen Seiten bis auf die Menüsteuerung recht statisch sind, ändert sich das bei der Buchungsseite. Diese programmieren Sie serverseitig. Das Ergebnis wird als HTML-Seite an den Client gesendet. Je nach Auswahl und Eingabe von Daten unterscheidet sich daher die Clientseite.Für die Buchung binden Sie eine Datenbank ein, die Termine speichert. Das Kalendersteuerelement zeigt belegte Termine und lässt neue Termine wählen, wobei belegte Termine nicht noch einmal gebucht werden dürfen. In der Datenbank, die den Buchungstermin und Kundendaten aufnimmt, speichern Sie neben dem Termin nur den Kundennamen.Falls vorhanden, bauen Sie eine Access-Datenbank auf, die Sie mit der Anwendung verbinden. Alternativ nutzen Sie den kostenlosen SQL-Express-Server von Microsoft. Diesen gewinnen Sie per Klick auf den Menübefehl Website/Neues Element hinzufügen. Im gleichnamig eingeblendeten Dialogfenster wählen Sie die SQL Server-Datenbank aus, die Sie Holiday.mdf nennen.Die angezeigte Warnung bestätigen Sie per Klick auf Ja, um die Datenbank im Ordner App_Data abzulegen. Klicken Sie jetzt doppelt auf die neu erstellte Datenbank, um die Unterverzeichnisse zu öffnen. Per Rechtsklick auf den Ordner Tabellen wählen Sie im Kontextmenü den Befehl Neue Tabelle hinzufügen aus. Und mit folgenden Feldern bestimmen Sie Spaltennamen und Datentypen Ihrer neuen Tabelle. Für das Feld ID erweitern Sie in den Eigenschaften das Feld Identitätsspezifikation, indem Sie diese auf Ja einstellen.Die (Ist-Identity) wird auf Ja eingestellt, die ID-Schrittweite sowie der ID-Startwert jeweils auf 1. Weil diese Einstellung die IDs automatisch beim Schreiben eines Datensatzes hochzählt, erhalten die Datensätze eine eindeutige Kennung. Klicken Sie auf Speichern und nennen Sie die Tabelle Gebucht. Um das einfacher zu testen, geben Sie manuell einen Datensatz in die Datenbank ein.Dazu wählen Sie die Tabelle per Rechtsklick aus und klicken im Kontextmenü auf den Befehl Tabellendaten anzeigen. Tippen Sie das erste Buchungsdatum und den ersten Namen ein, was Sie per Enter bestätigen, um danach die Datenbankfenster zu schließen. Weitere Einträge folgen im Buchungsformular.

Terminplan und Kalender

image.jpg
Einfach: Datenquelle für eine ListBox konfigurieren.
© Internet Magazin

Ein Listenfeld soll bereits belegte Termine anzeigen. Ziehen Sie dazu aus der Toolbox das Steuerelement ListBox in den Content PlaceHolder. Klicken Sie auf den Befehl Datenquelle auswählen in den ListBox-Aufgaben. Wählen Sie im Auswahlfeld Datenquelle auswählen den Eintrag Neue Datenquelle aus. Klicken Sie im eingeblendeten Dialogfenster auf das Symbol Datenbank. Die ID SqlDataSource1 wird festgelegt.Per Klick auf OK gelangen Sie in das Fenster zur Auswahl der Datenquelle, wo Sie den ConnectionString auswählen und im nächsten Dialogfenster die Felder Buchungsdatum und Name. Über die Schaltfläche Order By stellen Sie die Sortierreihenfolge des Buchungsdatums ein. Im Folgefenster lässt sich eine Testabfrage ausführen. Per Klick auf Fertig stellen gewinnt die Listbox Form. Der Test im Browser sollte den manuell eingegebenen Termin bereits in der ListBox anzeigen.Für das Kalendersteuerelement ziehen Sie Calendar aus der Toolbox auf das Formular. Heir lassen sich tage-, wochen- oder monatsweise Termine auswählen, jedoch nicht unabhängig voneinander mehrere Tage. Stellen Sie die Eigenschaft SelectionMode auf Day.

image.jpg
Bunt: Belegte Termine werden im Kalender markiert.
© Internet Magazin

Ein Label soll Ihre Terminauswahl anzeigen. Ziehen Sie dies Label aus der Toolbox unter den Kalender. Markieren Sie den Kalender und wählen Sie die Ereignisse aus. Per Doppelklick auf SelectionChanged gelangen Sie in das entsprechende VB-Fenster. Schreiben Sie in Protected Sub den Eintrag Label1.Text = Calendar1.SelectedDate, um bei jeder Auswahl eines Tages den Temin in das Label zu übertragen.Damit der Anwender im Kalender die bereits gebuchten Termine erkennt, ist das Ereignis DayRender richtig. Dieses Ereignis wird ausgelöst, wenn ein Tag an den Kalender übergeben wird. Wählen Sie das Kalenderereignis DayRender aus, um per Doppelklick in den VB-Codebereich zu gelangen.Dimensionieren Sie zunächst eine Variable nextDate als Date. Zusätzlich benötigen Sie eine Variable, um die Einträge in der Listbox zu zählen. Danach zählen Sie die Elemente in der Listbox und vergleichen anschließend jedes Datum darin mit dem Kalender. Dadurch wird jedes gefundene Datum im Kalender mit der Farbe DarkOrange markiert.

Das Buchungsformular

Jetzt brauchen Sie ein Textfeld für den Namen des Kunden. Ändern Sie die Eigenschaft ID dieses Feldes in txtName um. Die Daten übertragen Sie aus dem Webformular in die Datenbank per Schaltfläche. Dazu ziehen Sie das Steuerelement Button in das Webformular. Die Eigenschaft Text ändern Sie in Ferienwohnung buchen und die Eigenschaft ID in btn_Buchen. Per Doppelklick auf diesen Schaltknopf gelangen Sie in das Klick-Ereignis dieses Steuerelements.Übergeben Sie das ausgewählte Datum und den Namen des Kunden an entsprechenden Variablen. Zunächst prüft das Programm, ob der Buchungstermin in der Vergangenheit liegt. Falls das zutrifft, wird eine Nachricht an den Client gesendet und die Prozedur verlassen. Als nächstes überprüft das Programm, ob der gewählte Termin belegt ist.Sollte dies der Fall sein, bekommt der Client den passenden Hinweis, und die Prozedur wird verlassen. Wenn auch das Feld Name ausgefüllt ist, wird eine SQL-Anfügeabfrage für den Zugriff auf die Datenbank erzeugt.

"INSERT INTO Gebucht(Buchungsdatum, Name) VALUES (," & Buchungsdatum & "','" & BName & "')"

Danach bekommt der Anwender noch einmal die Möglichkeit, die Buchung verbindlich zu bestätigen oder den Buchungsvorgang abzubrechen. Erst nach dieser Bestätigung werden die Datensätze in die Datenbank geschrieben.

Datenkontrolle

image.jpg
Bald ausgebucht: die Einträge in der Buchungsdatenbank.
© Internet Magazin

Um die gebuchten Daten zu überblicken, verschaffen Sie sich über die Masterpage Seite eine weitere Inhaltsseite, die alle Buchungsdaten darstellt. Dazu bietet sich ein DataGridView an. Ziehen Sie dieses aus der Toolbox in die Entwurfsansicht der neuen Webseite.Aktivieren Sie anschließend die GridView-Aufgaben. Klicken Sie hier auf den Befehl Datenquelle auswählen und wählen Sie den Eintrag neue Datenquelle. Im folgenden Dialogfenster klicken Sie auf das Symbol Datenbank und bestätigen per Klick auf OK. In Folgefenster brauchen Sie den ConnectionString. Weiter geht es per Klick auf die gleichnamige Schaltfläche, wo Sie den Tabellennamen Gebucht auswählen. Setzen Sie ein Häkchen in die Spalten Buchungsdatum und Name.Der Klick auf Fertigstellen erzeugt Ihr DataGridView. In den GridView-Aufgaben formatieren Sie die Felder. Zusätzlich lassen sich Paging, Sortieren und Auswahl aktivieren. Diese Seite stellen Sie nicht in das Menü, weil nur Insider auf diese URL zugreifen. Im Echtbetrieb schützen Sie diese Seite am einfachsten in einem eigenen Unterverzeichnis mit einem Passwortschutz. Wer die Seite mit einem eigenen Schutz versehen will, macht erst die Datentabelle beim Start unsichtbar und nur per Passwort wieder sichtbar.