Zum Inhalt springen
Der Guide für ein smartes Leben.
Datenbankprogrammierung

SelectedIndex

Autoren: Redaktion pcmagazin und Walter Saumweber • 4.10.2009 • ca. 1:45 Min

Die Eigenschaft SelectedIndex des ListBox-Steuerelements gibt den Index des in der Liste ausgewählten Elements zurück. Falls in der Liste kein Element ausgewählt ist, ist dieser Wert -1. In der for each-Schleife durchlaufen Sie die komplette Kontakt-Liste, wobei Sie für jedes Objekt prüfen, ob ...

Die Eigenschaft SelectedIndex des ListBox-Steuerelements gibt den Index des in der Liste ausgewählten Elements zurück. Falls in der Liste kein Element ausgewählt ist, ist dieser Wert -1. In der for each-Schleife durchlaufen Sie die komplette Kontakt-Liste, wobei Sie für jedes Objekt prüfen, ob die vom Benutzer angegebene Zeichenfolge in dessen E-Mail-Adresse enthalten ist (k->Email-> ToLower()-> Contains(textBox3-> Text-> ToLower())).

Wegen der Konvertierung in Kleinbuchstaben mit ToLower() ignoriert die Suche Groß- und Kleinschreibung. Bei Übereinstimmung zeigen Sie die Daten des gefundenen Kontakt-Objekts im Formular an.

Der Zugriff erfolgt mit der Schleifenvariablen k wie bei k->Vorname. Damit verlässt das Programm die for each-Schleife. Notwendig ist es allerdings noch, die Indexvariable mit der Anweisung dsindex = meineKontakte-> IndexOf(k); zu aktualisieren, damit der Benutzer gegebenenfalls, vom gefundenen Kontakt ausgehend, weiter- oder zurückblättern kann. Mit den beiden anderen Kriterien verfahren Sie in der gleichen Weise.

Setzen Sie im Ausdruck k-> Email-> ToLower() für die Eigenschaft Email die Eigenschaften Vorname bzw. Name ein. Sonst bleibt der Code gleich.

Kontakte löschen/hinzufügen

Einen neuen Kontakt, dessen Daten der Anwender in die Textfelder eingegeben hat, speichert er über die Schaltfläche Neu. Der Knopf CL bereinigt die Anzeige. Vorher prüfen Sie allerdings in der Click-Ereignismethode für diese Schaltfläche, ob die angegebene Mail-Adresse nicht bereits existiert. Falls ja, geben Sie eine entsprechende Meldung aus. Ist die Eingabe soweit in Ordnung, fügen Sie den neuen Kontakt zunächst mit der Add()-Methode der generischen Liste hinzu.

Natürlich lassen sich zuvor noch weitere Voraussetzungen prüfen, ob zum Beispiel alle oder zumindest das Feld für die E-Mail-Adresse ausgefüllt sind. Anschließend fügen Sie einen neuen Datensatz mit den entsprechenden Werten in die SQL-Datenbank ein. Dazu verwenden Sie das gleiche SqlCommand-Objekt, das Sie bereits in der Methode Form1_Load() über den Aufruf connection-> CreateCommand() erhalten haben.

Die allgemeine Syntax des erforderlichen Befehls lautet: INSERT INTO (,., , ...) VALUES (,., , ...) Die erste Klammer enthält die Spaltennamen, die zweite Klammer die zugehörigen Werte. Im Beispiel übernehmen Sie diese aus den Feldern des Formulars. Das oberste TextBox-Steuerelement für den Vornamen ist im Beispiel textBox4, das für den Nachnamen textBox1 und das für die E-Mail-Adresse textBox2.

command->CommandText =
"INSERT INTO Kontakte (Vorname,
Nachname, [E-Mail]) VALUES (,"
+ textBox4->Text + "', ," + textBox1->Text + "', ," + textBox2->Text + "')";