verwendetes Datenbanksystem: <access>
Hallo zusammen 🙂
Und zwar habe ich eine Eingabemaske erstellt in der ich mitarbeiter + telefonnummer usw. anlege in eine Datenbank schreibe und in einer listbox zusammenfüge. Nun zu meinem Problem:
und zwar möchte ich mit einem Löschen Button die Daten aus der Listbox entfernen und ebenso aus der Datenbank. Das entfernen as der Listbox ist kein Problem, jedoch das entfernen aus der Datenbank, da ich nicht weiss wie ich das zusammengefügte Item wieder zerlegt bekomme.
Ich bitte um HILFE !!! 🙂
danke im Vorraus
:rolleyes: 😁 😮
Willst Du nur die Werte löschen oder den gesamten Datensatz? Dann wäre ja die ID von Vorteil.
aso ich möchte die jeweiligen daten (Name telefonnummer ....)
aus den verschiedenen Spalten der Datenbank löschen
:rolleyes: 😁 😮
Hallo haxXxy,
die Vorgehensweise dieses Problem zu lösen, hängt sehr davon ab, wie deine Daten an die ListBox "gebunden" sind. Erzeugst du die Einträge von Hand, wenn ja mit einem String, oder mit einem eigenen Typen.
In der Tag-Eigenschaft des ListBoxItem kannst du hinterlegen, um welchen Eintrag es sich handelt (wie von Noodles vorgeschlagen, die ID).
Wenn ich dich richtig verstehe, hast du in den Einträgen der ListBox Name + Telefonnummer + X, also den kompletten Datensatz aus der DB. Also muss der komplette DS aus der DB gelöscht werden, wenn der Löschen-Button geklickt wird. ID aus Tag nutzen...
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
habe mal nen screenshot gemacht vllt hilft euch das mehr mich zu verstehn 🙂
:rolleyes: 😁 😮
Also wird beim klick auf den 'Mitarbeiter löschen'-Button der gesamte Datensatz (Mitarbeiter) gelöscht. Also wie Noodles gesagt hat, ID zum Datensatz speichern, vorzugsweise in der Tag-Eigenschaft und diesen entsprechenden Datensatz mit der ID löschen.
Oder:
Du schreibst dir eine eigene Klasse Mitarbeiter, welche die einzelnen Eigenschaften (Name, Vorname, Telefonnummer, usw) hat, überschreibst die Methode ToString() und weißt einem ListBoxItem eine Instanz dieser Klasse zu.
Dann hast du beim Löschen nun wirklich alles 🙂
Gruss
Friedel
Ohne Ziel ist auch der Weg egal.
Hallo haxXxy,
ich würde dir auch die Lösung mit der ID empfehlen, da es am einfachsten und am elegantesten ist. Sollte es dir jedoch aus irgendwelchen Gründen nicht möglich sein die Datenbank abzuändern, so kannst du ja auch den String den du in die listbox gespeichert hast mit den String-Funktionen (Split) zerlegen.
HAst du Ihn erstmal zerlegt, dann kannst du ganz einfach in der Datenbank nach den Datensatz suchen, zu dem allte Teile (Name, Vorname, Telefonnummer) passen und diesen Löschen.
Gruss
MichlG
könntest du mir mal an einem beispiel zeigen wie die split methode funktioniert da ich sie noch nicht kenne 🙂
:rolleyes: 😁 😮
Hallo,
Die Splitmethode splittet den String mit den mitgegebenen Zeichen auf und gibt einen String-Array zurück welcher alle Teile enthält.
String mitarbeiter = "Michael Gsdd 22222222";
String[] teile = mitarbeiter.Split(' ');
So im Teile Array siehts nun wie folgt aus:
teile[0]=Michael
teile[1]=Gsdd
teile[2]=2222222
Der Mitgabewert der splitmethode ist das Zeichen(char) bei dem der String geteilt wird. Bei diesem Beispiel habe ich einfach ein Leerzeichen verwendet um den String nach den einzelnen Teilen aufzuteilen.
Somit kannst du einfach bei der Abfrage folgendes einfügen
String query = "DELETE FROM mitarbeiter WHERE vorname='" + teile[0] + "' AND name='"+teile[1] +"' AND telefonnummer="+teile[2];
Gruss
michlG
Steht so auch alles in der Doku ( :rtfm: )
Der Auffwand den Datensatz zu löschen wird dadurch aber erheblich erhöht. Hast du die anderen Vorschläge überhaupt mal versucht ?
Friedel
Ohne Ziel ist auch der Weg egal.
ginge das dann auch so ? :
String mitarbeiter = Convert.ToString(listBox1.SelectedItem);
String[] teile = mitarbeiter.Split('-');
:rolleyes: 😁 😮
darf an der datenbank leider nichts verändern ist ne vorgabe
:rolleyes: 😁 😮
HILFE, ich werde ignoriert.......
Sche.. drauf, das kann ich auch 8)
Viel Spaß noch!
Ohne Ziel ist auch der Weg egal.
hatte den beitrag schon geschrieben als ich deinen beitrag gesehn habe schaue gerade in der doku nach 🙂
:rolleyes: 😁 😮