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.4 SQL-Befehle Zur nächsten ÜberschriftZur vorigen Überschrift

In diesem Abschnitt werden die wichtigsten SQL-Befehle anhand von einigen typischen Beispielen mit ihren Auswirkungen erläutert, siehe auch Projekt DBSqlBefehle.


Galileo Computing - Zum Seitenanfang

8.4.1 Auswahl mit select Zur nächsten ÜberschriftZur vorigen Überschrift

Die Anweisung select dient zur Auswahl von Datensätzen, damit diese angezeigt werden können. Sie wird mithilfe von ExecuteReader() ausgeführt. Ein erstes Beispiel wurde mit select * from personen bereits gezeigt. Weitere Beispiele sind:

select name, vorname from personen

select

Es werden nur die Werte der Felder name und vorname für alle Datensätze angefordert. Das Abfrage-Ergebnis ist kleiner, die Werte der anderen Felder sind nicht in ihm enthalten und können auch nicht in der Schleife ausgegeben werden, siehe Abbildung 8.14.

Abbildung 8.14 Nur die Felder »name« und »vorname«

Beispiel:

select * from personen where gehalt > 3600

where

Innerhalb der where-Klausel können Bedingungen angegeben werden, ähnlich wie bei einer If-Verzweigung. Das Ergebnis beinhaltet nur die Datensätze, die der Bedingung genügen – in diesem Fall die Datensätze, bei denen der Wert im Feld gehalt größer als 3600 ist, siehe Abbildung 8.15.

Abbildung 8.15 Nur falls »gehalt« größer als 3600 ist

Beispiel:

select * from personen where name = 'Schmitz'

Hochkommata

Wird mit dem Wert einer Zeichenkette oder eines Datums verglichen, so muss dieser Wert in einfache Hochkommata gesetzt werden (nicht zu verwechseln mit dem doppelten Hochkomma für Zeichenketten in Visual Basic oder dem schrägen Akzent!). Das Ergebnis sehen Sie in Abbildung 8.16.

Abbildung 8.16 Nur falls »name« gleich »Schmitz« ist

Operatoren

Vergleichsoperatoren

Bei einer Bedingung können Vergleichsoperatoren verwendet werden, siehe Tabelle 8.11.


Operator Erläuterung

=

gleich

<>

ungleich

>

größer als

>=

größer als oder gleich

<

kleiner als

<=

kleiner als oder gleich


Tabelle 8.11: SQL, Vergleichsoperatoren

not, and, or

Über logische Operatoren können mehrere Bedingungen miteinander verbunden werden, siehe Tabelle 8.12.


Tabelle 8.11 SQL, logische Operatoren

Operator Erläuterung

not

Der Wahrheitswert einer Bedingung wird umgekehrt.

and

Beide Bedingungen müssen zutreffen.

or

Nur eine der Bedingungen muss zutreffen.


Mit diesen Operatoren kann man z. B. die folgende Abfrage formulieren:

select * from personen
   where gehalt >= 3600 and gehalt <= 3650

Das Ergebnis beinhaltet nur die Datensätze, bei denen der Wert im Feld gehalt zwischen 3600 und 3650 liegt, einschließlich der Ober- und Untergrenze, siehe Abbildung 8.17.

Abbildung 8.17 Nur falls »gehalt« zwischen 3600 und 3650 liegt

Operator like

like

Der Operator like wird speziell für die Suche nach Zeichenketten mithilfe von Platzhaltern verwendet. Der Platzhalter % (Prozentzeichen) steht in Access für eine beliebige Anzahl von unbekannten Zeichen. Der Platzhalter _ (Unterstrich) steht in Access für genau ein unbekanntes Zeichen.

Beispiel:

select * from personen where name like 'M%'

Das Ergebnis beinhaltet nur die Datensätze, bei denen der Wert im Feld name mit M beginnt, siehe Abbildung 8.18. Danach dürfen beliebig viele unbekannte Zeichen folgen.

Abbildung 8.18 Nur falls »name« mit »M« beginnt

Beispiel:

select * from personen where name like '%i%'

Viele unbekannte Zeichen

Das Ergebnis beinhaltet nur die Datensätze, die im Wert des Felds name den Buchstaben i enthalten, siehe Abbildung 8.19. Davor und danach dürfen beliebig viele unbekannte Zeichen folgen.

Abbildung 8.19 Nur falls »name« den Buchstaben »i« enthält

Beispiel:

select * from personen where name like 'M__er'

Ein unbekanntes Zeichen

Das Ergebnis beinhaltet nur die Datensätze, deren erster Buchstabe ein M ist und bei denen der vierte Buchstabe ein e und der fünfte ein r ist. Es werden also alle Personen gefunden, die z. B. Maier, Meier, Mayer oder Meyer heißen, siehe Abbildung 8.20.

Abbildung 8.20 Nur falls »name« mit »M« beginnt und mit »er« endet

Sortierung

order by

Die Reihenfolge der Datensätze im Abfrage-Ergebnis lässt sich mit order by beeinflussen. Sie können einen oder mehrere Sortierschlüssel angeben. Die Sortierung ist normalerweise aufsteigend. Falls Sie eine absteigende Sortierung wünschen, muss der Zusatz desc verwendet werden.

Beispiel:

select name, gehalt from personen order by gehalt desc

Die Datensätze sind fallend nach Gehalt sortiert. Es werden nur die Werte der Felder name und gehalt angezeigt, siehe Abbildung 8.21.

Abbildung 8.21 Sortiert nach »gehalt«, fallend

Beispiel:

select * from personen order by name, vorname

Die Datensätze sind nach dem Feld name aufsteigend sortiert. Bei gleichem Inhalt in diesem Feld sind sie nach dem Feld vorname aufsteigend sortiert, also wäre z. B. »Schmitz, Joachim« vor »Schmitz, Peter« einsortiert.

Suche, Auswahl mit Parametern

Sucht der Benutzer nach einem bestimmten Datensatz, so kann der eingegebene Suchbegriff in die SQL-Anweisung eingebaut werden:

cmd.CommandText =
   "select * from personen where name like '" &
   txtEingabe.Text & "'"

Benutzereingabe

Die gesamte Visual Basic-Anweisung, einschließlich des SQL-Befehls, ist hier dargestellt. Es werden alle Datensätze angezeigt, die den Wert im Feld name haben, den der Benutzer im Textfeld txtEingabe eingetragen hat.

Beachten Sie, dass sich die Zeichenkette, die den SQL-Befehl enthält, aus mehreren Teilen zusammensetzt. Keinesfalls dürfen Sie die einfachen Hochkommata vor und nach der Zeichenkette vergessen.

Noch einen Schritt weiter gehen Sie mit dieser Anweisung:

cmd.CommandText =
   "select * from personen where name like '%" &
   txtEingabe.Text & "%'"

Es werden alle Datensätze angezeigt, die einen Wert im Feld name haben, in dem die Zeichenkette vorkommt, die der Benutzer im Textfeld txtEingabe eingetragen hat.

Innerhalb des Visual Basic-Programms ist es sinnvoll, sich zumindest während der Entwicklung den zusammengesetzten Befehl anzeigen zu lassen. Erfahrungsgemäß werden gerade beim Einfügen von Suchparametern häufig Fehler gemacht. Die nächste Anweisung sollte also lauten: MessageBox.Show(cmd.CommandText). Diese können Sie später wieder auskommentieren.


Galileo Computing - Zum Seitenanfang

8.4.2 Ändern mit update Zur nächsten ÜberschriftZur vorigen Überschrift

ExecuteNonQuery()

Die Anweisung update dient der Änderung von einem oder mehreren Feldinhalten in einem oder mehreren Datensätzen. Sie wird mithilfe von ExecuteNonQuery() ausgeführt und ähnelt in ihrem Aufbau der Anweisung select. Die Auswahlkriterien sollten sorgfältig gewählt werden, da sonst eventuell nicht nur die gewünschten Datensätze verändert werden.

update personen set gehalt = 3800

Diese Anweisung würde bei allen Datensätzen der Tabelle personen den Wert für das Feld gehalt auf den Wert 3800 setzen. Dies wäre sicherlich nicht realistisch.

update personen set gehalt = 3800
   where personalnummer = 2297

Diese Anweisung setzt nur bei einem Datensatz den Wert für das Feld gehalt neu. Es empfiehlt sich, in einer solchen Situation die Auswahl über das Feld zu treffen, auf dem ein eindeutiger Index steht, also hier über das Feld personalnummer.


Galileo Computing - Zum Seitenanfang

8.4.3 Löschen mit delete Zur nächsten ÜberschriftZur vorigen Überschrift

Die Anweisung delete dient dem Löschen von einem oder mehreren Datensätzen. Sie wird ebenfalls mithilfe von ExecuteNonQuery() ausgeführt. In ihrem Aufbau ähnelt sie ebenfalls der Anweisung select. Die Auswahlkriterien sollten sorgfältig gewählt werden, da sonst eventuell nicht nur die gewünschten Datensätze gelöscht werden.

delete from personen

Diese Anweisung werden Sie vermutlich nie einsetzen: Sie löscht alle (!) Datensätze der Tabelle personen.

delete from personen where personalnummer = 2297

Einen Datensatz löschen

Diese Anweisung löscht genau einen Datensatz, da die Auswahl über das Feld gemacht wurde, auf dem ein eindeutiger Index steht, das Feld personalnummer.


Galileo Computing - Zum Seitenanfang

8.4.4 Einfügen mit insert Zur nächsten ÜberschriftZur vorigen Überschrift

Die Anweisung insert wird zum Einfügen neuer Datensätze genutzt. Auch sie wird mithilfe von ExecuteNonQuery() ausgeführt.

insert into personen
   (name, vorname, personalnummer, gehalt, geburtstag)
   values('Müller', 'Gerd', 4711, 2900, '12.08.1976')

insert ... values

Damit wird ein neuer Datensatz eingefügt. Die Feldnamen in Klammern geben die Anzahl und Reihenfolge der Werte vor, die nach values in Klammern stehen. Beachten Sie wieder die einfachen Hochkommata bei Zeichenketten und Datumsangaben.


Galileo Computing - Zum Seitenanfang

8.4.5 Typische Fehler in SQL topZur vorigen Überschrift

Fehler

Vor allem beim Einfügen und beim Ändern treten häufig Fehler auf. Die Fehler werden zu Visual Basic durchgeleitet und aufgrund der Ausnahmebehandlung ausgegeben. Typische Fehler sind:

Wert doppelt

  • Eintragen eines bereits vorkommenden Wertes in ein Feld, auf dem ein eindeutiger Index steht.

Wert falsch

  • Eintragen eines Wertes mit dem falschen Datentyp oder eines Wertes, der für den betreffenden Datentyp ungültig ist.

Wert leer

  • Eintragen eines leeren Wertes in ein Feld, das in der Datenbank so definiert ist, dass kein leerer Wert eingetragen werden darf.

Einige Beispiele für Fehler:

update personen set name = Mohr
   where personalnummer = 6714

Der Wert für das Feld name wurde nicht in einfache Anführungsstriche gesetzt, siehe Abbildung 8.22.

Abbildung 8.22 Fehlende Anführungsstriche

update personen set geburtstag = '18.07.'
   where personalnummer = 6714

Der Wert für das Feld geburtstag ist kein gültiges Datum, siehe Abbildung 8.23.

Abbildung 8.23 Ungültiges Datum

insert into personen
   (name, vorname, personalnummer, gehalt, geburtstag)
   values('Müller', 'Gerd', 6714, 2900, '12.08.1976')

Der Wert für das eindeutige Feld personalnummer kommt bereits vor, siehe Abbildung 8.24.

Abbildung 8.24 Doppelter Wert



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