SQLServer-Datenbank in Visual Studio 2008
Autor/Einsender:   Michael Werner
Anregungen/Tipps an: Michael Werner
Das Datenbanktutorial zu SQLServer führt Sie schrittweise durch die Entwicklung eines Visual Studio 2008-Projekts. In Visual Studio wird zunächst eine neue SQL Server-Datenbank für SQLEXPRESS erstellt und in der in Visual Studio integrierten Entwurfsansicht eine neue Tabelle angelegt. 
1. Eine SQLServer-Datenbank in Visual Studio erstellen
2. Eine neue Tabelle für SQLServer anlegen
3. Die Tabelle mit dem Assistenten an ein DataGridView binden
4. Ein datengebundenes Formular erstellen
Über die Aufgabenliste einer Instanz von DataGridView wird über den "Assistenten zum Konfigurieren von Datenquellen" die Datenbanktabelle angebunden und mit dem Drag & Drop-Feature von Visual Studio 2008 wird zusätzlich ein datengebundenes Eingabeformular generiert. Mit dem gleichzeitig generiertes BindingNavigator-Objekt kann nicht nur durch die Datensätze navigiert, sondern auch die Commands Insert, Delete und Update gegen die Datenbank ausgeführt werden.
1. Ein neues Visual Studio Projekt anlegen
In Visual Studio 8 legen Sie ein neues VB9-Projekt an /Datei/Neu/Windows Forms Anwendung, der Name hier: "SqlServerDatenbank anbinden".
 1.1 Eine neue SQL Server-Datenbank erstellen
Über das Menü Ansicht öffnen Sie das Fenster des Server-Explorers.
Mit Rechtsklick auf "Datenverbindung" wählen Sie "Neue SQL Server-Datenbank erstellen". Im sich öffnenden Dialog "Neue SQL Server-Datenbank erstellen" wählen Sie nach einer Aktualisierung (Schaltfläche) den Servernamen für SQLExpress und den Datenbanknamen „Address“:
Servername: [Benutzername]\SQLEXPRESS
Datenbankname: "Address"
Entscheiden Sie die Art der Authentifizierung, ob Windows-Authentifizierung (Standard) oder SQL Server-Authentifizierung. Im Beispiel wurde die Standardeinstellung „Windows-Authentifizierung verwenden“ gewählt. Nach Ok finden Sie eine neue Datenbank.dbo im Server-Explorer:
[Servername]\SQLExpress.Address.dbo
 1.2 Die Tabelle erstellen
Öffnen Sie diese Datenbankdatei durch Klick auf das Pluszeichen (+). Mit Rechtsklick auf "Tabellen" wählen Sie Neue Tabelle hinzufügen.
In einer in Visual Studio eingebetteten Entwurfsansicht für die Tabelle können Sie nun die Spaltennamen und Datentypen der Tabelle bestimmen.
Hier die Feldnamen und die dazugehörigen Datentypen im Überblick:
Feldname Felddatentyp
ID Int
Nachname nchar(50)
Vorname nchar(50)
Straße nchar(50)
PLZ nchar(10)
Ort nchar(50)
Telefon   nchar(20)
Email nchar(50)
Beachten Sie die unterschiedlichen maximalen Zeichenlängen für den Datentyp nchar. Der Datentyp nchar umfasst Unicode-Daten fester Länge und entspricht dem Datentyp Text in Access-Datenbanken. Wichtig: 
Die ID-Spalte muss als Primärschlüssel definiert werden
Die ID-Spalte benötigt nun noch eine besondere Behandlung. Markieren Sie den Spaltennamen ID und wechseln Sie in das untere Fenster Spalteneigenschaften.
Öffnen Sie Identitätsspezifikation und stellen Sie "(IstIdentity)" auf Ja.
Schließlich machen Sie die ID-Spalte zum Primärschlüssel. Dazu klicken Sie im oberen Menü auf das Schlüsselsymbol. Das Schlüssel-Symbol erscheint nun vor der ID-Spalte und die Spalte ID ist Primärschlüssel.
Und zum Schluss das Speichern der Tabelle nicht vergessen (Diskettensym-bol)! Name der Tabelle: tblAddress. Im Server-Explorer wird nun die Tabelle mit ihren Spalten angezeigt.
Mit Rechtsklick auf die Tabelle tblAddress im Server-Explorer und die Auswahl Tabellendaten anzeigen wechseln Sie in die Datenblattansicht und können vorab Daten in die Tabelle schreiben. Im Beispiel „Mustermann“, „Max“, usw.
2. Die Datenbank dem Projekt hinzufügen und an ein DataGridView binden
Laden Sie aus der Toolbox ein DataGridView in das Formular (Form1). Im Menü DataGridView1-Aufgaben (Öffnen mit Klick auf den kleinen schwarzer Pfeil an der rechten oberen Ecke der DataGridView-Instanz) wählen Sie unter Datenquelle auswählen den Link Projektdatenquelle hinzufügen, um den Assistenten zum Konfigurieren der Datenquelle zu starten.
Wählen Sie im nächsten Dialog den Datenquellentyp "Datenbank" aus.
Im Dialog Verbindung hinzufügen müssen Sie nun mehrere Einstellungen vornehmen:
a) die Datenquelle auswählen (Schaltfläche „Ändern“): Microsoft SQL Server
b) den Servernamen auswählen: [Servername]\SQLEXPRESS
c) zwischen Windows-Authentifizierung oder SQL Server-Authentifizierung wählen (Hier: Windows-Authentifizierung).
d) Datenbanknamen auswählen: Address
Falls unter Servername nicht „Microsoft SQL Server“ angezeigt wird, müssen Sie über die Schaltfläche „Ändern“ die Datenquelle wechseln: Microsoft SQL Server auswählen.
Nach einem erfolgreichen Verbindungstest (Schaltfläche „Testverbindung“) wird mit OK die Verbindung hinzugefügt.
Im Assistenten geht es jetzt weiter mit: Datenverbindung auswählen. Wählen Sie die Schaltfläche Neue Verbindung...
Die Frage, Verbindungszeichenfolge in der Anwendungskonfigurationsdatei speichern? beantworten Sie mit Ja. Damit wird der AddressConnectionString in den Settings gespeichert (My Project/Einstellungen) als:
Data Source=[Servername]\SQLEXPRESS;Initial Catalog=Address;Integrated Security=True
Im nächsten Dialog sind die Datenbankobjekte zu wählen: In unserem Fall benötigen wir nur die Tabelle: "Tabellen" aktivieren (Häkchen setzen).
Die Datenbankobjekte für das DataSet, die BindingSource und den TableAdapter sind erstellt und die Spaltennamen werden im DataGridView angezeigt:
Der Code für das Laden der Tabellendaten in das DataGridView wurde im Load-Event generiert:
 
Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
     'TODO: Diese Codezeile lädt Daten in die Tabelle
     '"AddressDataSet.tblAddress". Sie können sie bei Bedarf
     'verschieben oder entfernen.
    Me.TblAddressTableAdapter.Fill(Me.AddressDataSet.tblAddress)
  End Sub
End Class
 
Dass die Tabellendaten geladen werden, können Sie testen, indem Sie das Projekt ausführen (Debuggen mit [F5]).

5. Ein datengebundenes Formular erstellen

Im selben Projekt fügen Sie eine neue Windows Form hinzu (Menü Projekt/Windows Form hinzufügen…). Im Beispiel heißt dieses Formular EingabeDialog.

Datenquellenfenster öffnen

Öffnen Sie im Menü „Daten“ mit „Datenquellen anzeigen“ das Datenquellen-Fenster (nicht zu verwechseln mit dem SQL-Explorer-Fenster).

Öffnen Sie im AddressDataset die Tabelle tblAddress (Plus-Zeichen). Im DropDown-Feld von tblAddress wählen Sie Details, um ein datengebundenes Formular zu bekommen.
Das Drag & Drop-Feature von Visual Studio 2008
Nun ziehen Sie mit gedrückter linken Maustaste die Tabelle tblAddress aus dem Datenquellen-Fenster auf das Formular EingabeDialog. Nach dem Loslassen der Maustaste wird nun von Visual Studio ein vollständiges datengebundenes Formular mit Labels und TextBoxen generiert, die den Spaltennamen der Tabelle entsprechen.
Darüber hinaus wird eine Instanz des BindingNavigator erstellt, die an die Tabelle gebunden ist. Der BindingNavigator legt sich standardmäßig an die Top-Position des Formulars und ist ein mächtiges Multifunktionsobjekt, das die wichtigsten Basisaktionen einer Datenbankanwendung ermöglicht:
  • ein Navigieren durch die Datensätze der Tabelle (Vor- und Zurück-Symbole)
  • das Hinzufügen neuer Datensätze (gelbes Plus-Symbol +)
  • das Löschen von Datensätzen (rotes Kreuz-Symbol x)
  • das Speichern der geänderten Tabellendaten (Diskettensymbol)

Folgende Instanzen wurden instanziert:

  • AddressDataSet
  • TblAddressBindingSource
  • TblAddressTableAdapter
  • TableAdapterManager
  • TblAddressBindingNavigator

Im Hintergrund wurden im Code zwei Ereignisprozeduren angelegt. Mit der Methode Fill werden im Load-Event die Daten aus der Tabelle geladen. Mit dem Click-Event von TblAddressBindingNavigatorSaveItem werden bei einem Klick auf das Speicher-Symbol im Navigator (Diskettensymbol) alle Änderungen in der Datenbank gespeichert (Methode UpdateAll des TableAdapterManagers).

Ein zusätzlicher selbst eingebauter Button (btnOk) bewirkt vor dem Schließen des Formulars ein Speichern aller Änderungen an den Datensätzen.
 
Private Sub TblAddressBindingNavigatorSaveItem_Click(ByVal sender
   As System.Object, ByVal e As System.EventArgs) Handles
   TblAddressBindingNavigatorSaveItem.Click
  'Speichern über das Diskettensymbol des Navigators
  Me.Validate()
  Me.TblAddressBindingSource.EndEdit()
  Me.TableAdapterManager.UpdateAll(Me.AddressDataSet)
End Sub

Private Sub EingabeDialog_Load(ByVal sender As System.Object,
   ByVal e As System.EventArgs) Handles MyBase.Load
   'TODO: Diese Codezeile lädt Daten in die Tabelle
   '"AddressDataSet.tblAddress". Sie können sie bei Bedarf
   'verschieben oder entfernen.
  Me.TblAddressTableAdapter.Fill(Me.AddressDataSet.tblAddress)
End Sub

Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e
   As System.EventArgs) Handles btnOk.Click
   'Alles speichern
  Me.Validate()
  Me.TblAddressBindingSource.EndEdit()
  Me.TableAdapterManager.UpdateAll(Me.AddressDataSet)
   'Schließen
  Close()
End Sub
 
Zur Komplettierung unserer kleinen Datenbank-Anwendung müssen wir noch für zwei Dinge im Startformular Form1 sorgen: Zum einen benötigen wir einen Button, mit dem wir den Eingabe-Dialog öffnen (btnShowEingabeDialog).
 Zum Anderen: Damit nach dem Schließen des Formulars EingabeDialog und dem Aktivieren des Form1-Fensters die Datenänderungen auch sofort im DataGridView angezeigt werden, müssen wir im Ereignis Form1_Activated die Daten neu einlesen:
 
Private Sub btnShowEingabeDialog_Click(ByVal sender As
   System.Object, ByVal e As System.EventArgs) Handles
   btnShowEingabeDialog.Click
  'Den EingabeDialog öffnen
  My.Forms.EingabeDialog.ShowDialog()
End Sub

 'Wird benötigt, um die Änderungen im EingabeDialog anzuzeigen
Private Sub Form1_Activated(ByVal sender As Object, ByVal e
   As System.EventArgs) Handles Me.Activated
   'Daten neu laden
  Me.TblAddressTableAdapter.Fill(Me.AddressDataSet.tblAddress)
End Sub
 
Damit ist das Beispielprojekt soweit abgeschlossen.
Abfragen definieren
Sie können das Projekt nun beliebig erweitern um weitere Abfragen gegen die Datenbank. Dazu gehen Sie am besten in das Tabellenschema, indem Sie die XSD-Datei AddressDataSet.xsd im Projektmappen-Explorer anklicken (XSD = XML-Schema-Definition). Durch Rechtsklick auf den TableAdapter und „Abfrage hinzufügen“ starten Sie den Konfigurationsassistenten für TableAdapter-Abfragen. Aber dieses Thema bietet sich für ein weiteres Tutorial an, dass zukünftig geschrieben werden kann.
Hinweis
Das Beispielprojekt benötigt ein installiertes SQLExpress und Visual Studio 2008. Der ConnectionString muss auf einen eigenen SQLServer (im Projektmappen-Explorer/My Project/Einstellungen) angepasst werden.
Bei Fragen zu diesem Tutorial nutzen Sie bitte unser VB.Net-Forum.


Download  (133 kB) Downloads bisher: [ 2056 ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB-/VBA-Forum | DirectX-Forum | VB.Net | .Net-Forum | Foren-Archiv | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 24. April 2021