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 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

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

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
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 MS Access
    Pfeil 8.2.1 Aufbau von MS Access
    Pfeil 8.2.2 Datenbank-Entwurf in MS Access 2007
    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 Auswahlabfrage
    Pfeil 8.3.6 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.5 Ein Verwaltungsprogramm
    Pfeil 8.5.1 Initialisierung
    Pfeil 8.5.2 Alle Datensätze sehen
    Pfeil 8.5.3 Einen Datensatz einfügen
    Pfeil 8.5.4 Einen Datensatz ändern
    Pfeil 8.5.5 Einen Datensatz löschen
    Pfeil 8.5.6 Einen Datensatz suchen
  Pfeil 8.6 Verbindung zu MySQL
    Pfeil 8.6.1 ODBC-Treiber
    Pfeil 8.6.2 Datenquelle
    Pfeil 8.6.3 Datenbankzugriff mit Visual Basic
    Pfeil 8.6.4 .NET-Treiber
  Pfeil 8.7 Verbindung zu MS SQL Server 2005
    Pfeil 8.7.1 Anlegen einer Datenbank
    Pfeil 8.7.2 Datenbankzugriff mit Visual Basic


Galileo Computing - Zum Seitenanfang

8.4 SQL-Befehle  Zur nächsten ÜberschriftZur vorigen Überschrift

In diesem Abschnitt werden die wichtigsten SQL-Befehle behandelt. Sie werden anhand von einigen typischen Beispielen mit ihren Auswirkungen erläutert.


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:

Abbildung 8.22  Nur 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.

Abbildung 8.23  Nur falls Gehalt > 3600

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 Accent!).

Abbildung 8.24  Nur falls Name = 'Schmitz’

Operatoren

Vergleichsoperatoren

Bei einer Bedingung können Vergleichsoperatoren verwendet werden:


Operator Erläuterung

=

gleich

<>

ungleich

>

größer als

>=

größer als oder gleich

<

kleiner als

<=

kleiner als oder gleich


not, and, or

Über logische Operatoren können mehrere Bedingungen miteinander verbunden werden:


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. 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.

Abbildung 8.25  Nur falls Gehalt von 3600 bis 3650

Operator Like

Like

Der Operator like wird speziell für die Suche nach Zeichenketten mithilfe von Platzhaltern verwendet. Der Platzhalter % (Prozentzeichen) steht in MS Access für eine beliebige Anzahl von unbekannten Zeichen. Der Platzhalter _ (Unterstrich) steht in MS 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. Danach dürfen beliebig viele unbekannte Zeichen folgen.

Abbildung 8.26  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. Davor und danach dürfen beliebig viele unbekannte Zeichen folgen.

Abbildung 8.27  Nur falls Name 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 Maier, Meier, Mayer, Meyer usw. heißen.

Abbildung 8.28  Nur falls Name mit 'M' beginnt und mit 'er' endet

Sortierung

Order by

Die Reihenfolge der Datensätze im Abfrage-Ergebnis Ausgabe lässt sich mit order by beeinflussen. Man gibt einen oder mehrere Sortierschlüssel an. Die Sortierung ist normalerweise aufsteigend. Falls man eine absteigende Sortierung wünscht, 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.

Abbildung 8.29  Sortiert nach Gehalt, fallend

Beispiel:

select * from personen order by name, vorname

Die Datensätze sind nach Name aufsteigend sortiert. Bei gleichem Namen sind sie nach vorname aufsteigend sortiert.

Abbildung 8.30  Nach Name, Vorname sortiert

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.

Man beachte, dass sich die Zeichenkette, die den SQL-Befehl enthält, aus mehreren Teilen zusammensetzt. Keinesfalls darf man die einfachen Hochkommata vor und nach der Zeichenkette vergessen.

Noch einen Schritt weiter geht man 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: MsgBox(cmd.CommandText). Diese kann man 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 zur Ä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.

Fehler bei Änderung

Versucht man, Änderungen vorzunehmen, die der Tabellenaufbau nicht zulässt, so wird eine Fehlermeldung zu Visual Basic durchgeleitet. Mögliche Fehler sind:

  • Man möchte einen leeren Wert in ein Feld eintragen, das in MS Access so definiert ist, dass kein leerer Wert eingetragen werden darf.
  • Man möchte einen Wert in einem Feld, auf dem ein eindeutiger Index steht, eintragen, der bereits in einem anderen Datensatz vorkommt.
  • Man möchte ein ungültiges Datum oder eine ungültige Zahl eintragen.

Galileo Computing - Zum Seitenanfang

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

Die Anweisung delete dient zum Löschen von einem oder mehreren Datensätzen. Sie wird 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 wird man 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  topZur vorigen Überschrift

Die Anweisung insert wird zum Einfügen neuer Datensätze genutzt. 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. Es sind wieder die einfachen Hochkommata bei Zeichenketten und Datumsangaben zu beachten.

Beim Einfügen sollte man die gleichen Fehler vermeiden wie beim Ändern.



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 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
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