Rheinwerk Computing < openbook > Rheinwerk 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
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
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 2010
Pfeil 8.2.3 Ü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

Rheinwerk Computing - Zum Seitenanfang

8.4 SQL-BefehleZur nächsten Überschrift

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


Rheinwerk Computing - Zum Seitenanfang

8.4.1 Auswahl mit selectZur 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

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

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

Beispiel:

select * from personen where gehalt > 3600

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

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

Beispiel:

select * from personen where name = 'Schmitz'

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

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

Operatoren

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

Tabelle 8.11 SQL, Vergleichsoperatoren

Operator Erläuterung

=

gleich

<>

ungleich

>

größer als

>=

größer als oder gleich

<

kleiner als

<=

kleiner als oder gleich

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

Tabelle 8.12 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

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

Operator 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

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

Beispiel:

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

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

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

Beispiel:

select * from personen where name like 'M__er'

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

Abbildung 8.20 Nur falls »name« aus »M«, zwei beliebigen Zeichen und »er« besteht

Sortierung

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

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 & "'"

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.


Rheinwerk Computing - Zum Seitenanfang

8.4.2 Ändern mit updateZur nächsten ÜberschriftZur vorigen Überschrift

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.


Rheinwerk Computing - Zum Seitenanfang

8.4.3 Löschen mit deleteZur 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

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


Rheinwerk Computing - Zum Seitenanfang

8.4.4 Einfügen mit insertZur 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')

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.


Rheinwerk Computing - Zum Seitenanfang

8.4.5 Typische Fehler in SQLZur vorigen Überschrift

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:

  • Eintragen eines bereits vorkommenden Wertes in ein Feld, auf dem ein eindeutiger Index steht
  • Eintragen eines Wertes mit dem falschen Datentyp oder eines Wertes, der für den betreffenden Datentyp ungültig ist
  • 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

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

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

Abbildung 8.24 Doppelter Wert



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern