Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 7,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1541-1
Pfeil 8 Datenbank-Anwendungen mit ADO.NET
Pfeil 8.1 Was sind relationale Datenbanken?
Pfeil 8.1.1 Beispiel »Lager«
Pfeil 8.1.2 Indizes
Pfeil 8.1.3 Relationen
Pfeil 8.1.4 Übungen
Pfeil 8.2 Anlegen einer Datenbank in Microsoft Access
Pfeil 8.2.1 Aufbau von Access
Pfeil 8.2.2 Datenbank-Entwurf in Access 2007
Pfeil 8.2.3 Datenbank-Entwurf in einer älteren Version von Access
Pfeil 8.2.4 Übungen
Pfeil 8.3 Datenbankzugriff mit Visual Basic
Pfeil 8.3.1 Beispiel-Datenbank
Pfeil 8.3.2 Ablauf eines Zugriffs
Pfeil 8.3.3 Verbindung
Pfeil 8.3.4 SQL-Befehl
Pfeil 8.3.5 OleDb
Pfeil 8.3.6 Auswahlabfrage
Pfeil 8.3.7 Aktionsabfrage
Pfeil 8.4 SQL-Befehle
Pfeil 8.4.1 Auswahl mit select
Pfeil 8.4.2 Ändern mit update
Pfeil 8.4.3 Löschen mit delete
Pfeil 8.4.4 Einfügen mit insert
Pfeil 8.4.5 Typische Fehler in SQL
Pfeil 8.5 Ein Verwaltungsprogramm
Pfeil 8.5.1 Initialisierung
Pfeil 8.5.2 Alle Datensätze sehen
Pfeil 8.5.3 Datensatz einfügen
Pfeil 8.5.4 Datensatz ändern
Pfeil 8.5.5 Datensatz löschen
Pfeil 8.5.6 Datensatz suchen
Pfeil 8.6 Abfragen über mehrere Tabellen
Pfeil 8.7 Verbindung zu MySQL
Pfeil 8.7.1 .NET-Treiber
Pfeil 8.8 Arbeiten mit DataSets
Pfeil 8.8.1 Eine Tabelle in Detailansicht
Pfeil 8.8.2 Schließen ohne Speichern verhindern
Pfeil 8.8.3 Eine Tabelle in DataGrid-Ansicht
Pfeil 8.8.4 Mehrere Tabellen mit Relationen


Galileo Computing - Zum Seitenanfang

8.8 Arbeiten mit DataSets Zur nächsten ÜberschriftZur vorigen Überschrift

Puffer

Die Verbindung zwischen einer Anwendung und einer Datenbank kann auch halb-automatisiert, mithilfe der Entwicklungsumgebung über ein so genanntes DataSet aufgenommen werden. Das DataSet dient dabei als Puffer zur Zwischenspeicherung der Daten.

Der Ablauf bei der Benutzung ergibt sich wie folgt:

  • Nach Aufnahme einer Verbindung werden die Daten aus der Datenbank in das DataSet kopiert. Anschließend wird die Verbindung wieder geschlossen.
  • Nach Änderung einzelner oder mehrerer Datensätze des DataSets können die Daten über eine neue Verbindung in der Datenbank gespeichert werden.

Galileo Computing - Zum Seitenanfang

8.8.1 Eine Tabelle in Detailansicht Zur nächsten ÜberschriftZur vorigen Überschrift

In einem ersten Beispiel soll auf die Tabelle personen der Access Datenbank firma.mdb über einen DataSet zugegriffen werden.

Zur schnellen Erstellung einer einfachen Datenbankanwendung (Projekt DBDataSet, siehe Abbildung 8.51):

  • Erstellen Sie ein neues Windows-Forms-Projekt.
  • Speichern Sie das gesamte Projekt.
  • Rufen Sie im Kontextmenü des Projekts HinzufügenVorhandenes Element auf. Es erscheint das entsprechende Dialogfeld.

Link hinzufügen

  • Wählen Sie die Access-Datenbank firma.mdb in ihrem Originalverzeichnis aus. Sie wird normalerweise bei diesem Vorgang in das Projektverzeichnis kopiert und es werden dort weitere Kopien angelegt. Hier wollen wir aber immer auf das Original zugreifen. Daher wählen Sie im Aufklappmenü des Buttons Hinzufügen den Menüpunkt Als Link hinzufügen, siehe Abbildung 8.46.

Abbildung 8.46 Datenbank als Link hinzufügen

  • Nach kurzer Zeit erscheint ein Assistentendialogfeld zum Konfigurieren der Datenquelle.
  • Es ist eine Liste der Tabellen und Abfragen zu sehen. Markieren Sie die Tabelle personen, siehe Abbildung 8.47.

Abbildung 8.47 Auswahl der Tabelle »personen«

DataSet

  • Nach dem Fertig stellen sehen Sie nach kurzer Zeit, dass im Projektmappenexplorer ein Objekt vom Typ DataSet hinzugefügt wurde (firmaDataSet), siehe Abbildung 8.48.

Abbildung 8.48 Objekt vom Typ DataSet

  • Wählen Sie nun im Menü Daten den Menüpunkt Datenquellen anzeigen.
  • Lassen Sie sich über den Projektmappenexplorer das Formular der Anwendung anzeigen, falls es momentan nicht sichtbar sein sollte.
  • Wählen Sie in der Datenquellenanzeige im Aufklappmenü der Tabelle personen die Ansicht Details, siehe Abbildung 8.49.

Abbildung 8.49 Ansicht »Details«

  • Ziehen Sie das Symbol der Tabelle personen aus der Datenquellenanzeige in das Formular der Anwendung.

Neue Steuerelemente

  • Nach kurzer Zeit erscheinen im bzw. unter dem Formular:
    • Eine Navigations-Symbolleiste.
    • Einige (im Formular unsichtbare) Komponenten, siehe Abbildung 8.50.
    • Ein Satz von Steuerelementen. Das Standardsteuerelement für ein Tabellenfeld ist eine Textbox, für ein Feld vom Typ Datum wird automatisch ein Objekt vom Typ DateTimePicker gewählt.

Abbildung 8.50 Komponenten für den DataSet

  • Dadurch wird eine einfache Ansicht und Aktualisierung der Tabellendaten ermöglicht.
  • Starten Sie die Anwendung, siehe Abbildung 8.51.

Abbildung 8.51 Anwendung mit DataSet

Zuerst speichern

Sie können nun durch die Datensätze navigieren. Sie können sie ändern. Sie können die Anwendung wieder beenden. Nach einem erneuten Start werden Sie feststellen, dass Daten erst nach Betätigung des Symbols Speichern dauerhaft in der Datenbank gespeichert werden. Vorher sind sie nur temporär im DataSet geändert.

Symbolleiste

Die Navigations-Symbolleiste für den DataSet besteht aus den folgenden Steuerelementen:

  • AddNewItem: zum Bereitstellen eines neuen leeren Datensatzes
  • CountItem: zur Anzeige der Anzahl der Datensätze
  • DeleteItem: zum Löschen eines Datensatzes
  • MoveFirstItem: geht zum ersten Datensatz
  • MoveLastItem: geht zum letzten Datensatz
  • MoveNextItem: geht zum nächsten Datensatz
  • MovePreviousItem: geht zum vorigen Datensatz
  • PositionItem: zur Positionierung auf einem bestimmten Datensatz und zur Anzeige des betreffenden Datensatzes
  • Separator, Separator1, Separator2: zur optischen Trennung der Symbole
  • NavigatorSaveItem: zur Speicherung der Inhalte des DataSets in der Datenbank

Projektkomponenten

Die neuen Komponenten des Projekts:

  • BindingNavigator (hier: PersonenBindingNavigator): Zentrale Komponente zur Navigation, hat Verbindung zur BindingSource-Komponente.
  • BindingSource (hier: PersonenBindingSource): Bildet die Verbindung zwischen den Daten-Steuerelementen (hier: Textboxen und DateTimePicker) und dem DataSet.
  • TableAdapter (hier: PersonenTableAdapter): Stellt kurzfristig die Verbindung zwischen dem DataSet und der Datenbank her, zum Empfangen der Daten (von Datenbank zu DataSet) und zum Aktualisieren der Daten (von DataSet zu Datenbank).
  • TableAdapterManager (hier: TableAdapterManager): Steuert die Reihenfolge der Aktualisierung der Daten, hier gibt es verschiedene Strategien.
  • DataSet: (hier: FirmaDataSet): Puffer zur Zwischenspeicherung der Daten

Galileo Computing - Zum Seitenanfang

8.8.2 Schließen ohne Speichern verhindern Zur nächsten ÜberschriftZur vorigen Überschrift

Ereignis Schließen

Als nützliche Ergänzung der Anwendung DBDataSet wird noch eine Ereignisprozedur hinzugefügt. Diese wird aufgerufen, sobald der Benutzer das Formular schließen möchte. Es gibt bekanntlich mehrere Möglichkeiten, ein Formular zu schließen:

  • über den Aufruf der Methode Close() des Formulars
  • über den Klick auf das Kreuz oben rechts im Systemmenü
  • über die Tastenkombination Taste Alt + Taste F4

FormClosing

In allen Fällen tritt das Ereignis FormClosing ein. Mit der folgenden Prozedur haben Sie die Möglichkeit, das Schließen des Formulars zu verhindern, falls eine Änderung durchgeführt wurde, ohne dass danach gespeichert wurde:

Private Sub Form1_FormClosing(
        ByVal sender As System.Object,
        ByVal e As System.Windows.
        Forms.FormClosingEventArgs
        ) Handles MyBase.FormClosing
    If FirmaDataSet.HasChanges() Then
        If MessageBox.Show(
            "Beenden, ohne zu speichern?",
            "Daten geändert",
            MessageBoxButtons.YesNo,
            MessageBoxIcon.Question) =
                DialogResult.No Then
            e.Cancel = True
        End If
    End If
End Sub

Listing 8.11 Projekt »DBDataSet«, FormClosing-Ereignis

Zur Erläuterung:

  • Die Prozedur zum Ereignis FormClosing bekommt als zweiten Parameter das Objekt e der Klasse FormClosingEventArgs geliefert.

HasChanges()

  • Jede Änderung des DataSets wird registriert. Ein DataSet verfügt außerdem über die Methode HasChanges(), mit der Sie feststellen können, ob eine Änderung stattgefunden hat.
  • Falls dies zutrifft, dann wird im vorliegenden Programm gefragt, ob Sie die Anwendung wirklich verlassen möchten ohne zu speichern, siehe Abbildung 8.52. Falls Sie mit Nein antworten, dann wird die Eigenschaft Cancel des Objekts e auf True gesetzt. Dies führt dazu, dass das Schließen des Formulars nicht stattfindet.

Abbildung 8.52 Rückfrage beim Schließen nach Änderung


Galileo Computing - Zum Seitenanfang

8.8.3 Eine Tabelle in DataGrid-Ansicht Zur nächsten ÜberschriftZur vorigen Überschrift

Eine weitere, übersichtliche Möglichkeit zur Darstellung und Bearbeitung von Daten aus einer Datenbank stellt das Steuerelement DataGridView dar. Dies wird im Projekt DBDataSetGrid gezeigt, siehe Abbildung 8.53.

Abbildung 8.53 Verwendung eines DataGridView

DataGridView

Erstellen Sie ein neues Projekt. Gehen Sie genau so wie in der Anleitung des vorherigen Projekts vor. Wählen Sie jedoch in der Datenquellenanzeige im Aufklappmenü der Tabelle personen die Ansicht DataGridView, siehe Abbildung 8.54. Nunmehr können Sie alle Datensätze gleichzeitig sehen, ändern und speichern.

Abbildung 8.54 Tabellenansicht mit DataGridView


Galileo Computing - Zum Seitenanfang

8.8.4 Mehrere Tabellen mit Relationen topZur vorigen Überschrift

Zugriff auf drei Tabellen

In diesem Abschnitt wird mithilfe eines DataSets eine Anwendung (Projekt DBDataSetMehrereTabellen) mit Zugriff auf die Datenbank projektverwaltung.mdb erstellt. Diese Datenbank beinhaltet mehrere Tabellen und Relationen. Es soll möglich sein, auf die Datensätze der Tabelle projekt, die zugehörigen Datensätze der Tabelle projekt_person und dort über eine Auswahlliste auf den zugehörigen Nachnamen aus der Tabelle person zuzugreifen, also auf Daten aller drei miteinander verbundenen Tabellen, siehe Abbildung 8.55.

Abbildung 8.55 Zugriff auf Inhalte aus drei Tabellen

Die Erstellung:

  • In einem neuen Projekt wird ein Element über den Menüpunkt HinzufügenVorhandenes Element hinzugefügt: ein Link auf die Datei C:\Temp\projektverwaltung.mdb. Dabei werden alle Tabellen eingeschlossen. Damit steht ein DataSet zur Verfügung, der alle Tabellen und Relationen beinhaltet.
  • Aus der Datenquellenansicht wird die Tabelle projekt in der Detail-Ansicht auf das Formular gezogen.

Tabellenauswahl

  • Aus der Datenquellenansicht wird diejenige Tabelle projekt_person in der DataGrid-Ansicht auf das Formular gezogen, die in der Hierarchie eine Ebene unterhalb der Tabelle projekt steht, also die in Abbildung 8.56 markierte Tabelle. Damit werden nur die Datensätze der Tabelle projekt_person eingeblendet, die zum jeweiligen Datensatz der Tabelle projekt gehören.

Abbildung 8.56 Tabelle »projekt_person«, auf Tabelle »projekt« bezogen

Konfigurationsmenü

  • Über den kleinen Pfeil oben rechts am DataGrid lässt sich ein Konfigurationsmenü aufklappen, u. a. mit Zugang zu den Dialogfeldern Spalten bearbeiten (Edit Columns) und Spalten hinzufügen (Add Column), siehe Abbildung 8.57.

Abbildung 8.57 Konfigurationsmenü des DataGridView

  • Im Dialogfeld Spalten bearbeiten entfernen Sie die beiden Spalten pr_id und pe_id. Sie sind für die Ansicht überflüssig bzw. ungünstig zu bedienen.
  • Im Dialogfeld Spalten hinzufügen wählen Sie die Spalte pe_id, den Typ DataGridViewComboBoxColumn und den Headertext pe_nachname, siehe Abbildung 8.58. Damit ist eine weitere Spalte im DataGrid zu sehen, noch ohne Datenbindung und als letzte Spalte.

Abbildung 8.58 Hinzufügen einer neuen Spalte

Spalten-Eigenschaften

  • Im Dialogfeld Spalten bearbeiten verschieben Sie die neu hinzugefügte Spalte an die erste Stelle. Es werden die folgenden Eigenschaften zur Datenbindung eingestellt, siehe Abbildung 8.59:
    • DataSource: über Weitere Datenquellen die Tabelle person
    • DisplayMember: das Feld pe_nachname
    • ValueMember: das Feld pe_id

Abbildung 8.59 Eigenschaften der neuen Spalte

DisplayMember liefert die sichtbaren Werte (hier den Nachnamen), wenn der Benutzer die Combobox aufklappt. ValueMember liefert die unsichtbaren zugehörigen Werte (hier die Personen-ID), über die eine Beziehung zu einer anderen Tabelle hergestellt wird.

Mit diesem Projekt steht Ihnen eine einfache Anwendung mit Zugriff auf Inhalte von drei miteinander verbundenen Tabellen zur Verfügung.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2010






 Visual Basic 2010


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Einstieg in Visual C# 2010






 Einstieg in
 Visual C# 2010


Zum Katalog: Visual C# 2010






 Visual C# 2010


Zum Katalog: Einstieg in PHP 5.3 und MySQL 5.4






 Einstieg in PHP 5.3
 und MySQL 5.4


Zum Katalog: PHP 5.3 und MySQL 5.4






 PHP 5.3 und
 MySQL 5.4


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de