Laden...

ein item in mehrere Strings aufteilen

Erstellt von haxXxy vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.272 Views
H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren
ein item in mehrere Strings aufteilen

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: 😁 😮

N
4.644 Beiträge seit 2004
vor 16 Jahren

Willst Du nur die Werte löschen oder den gesamten Datensatz? Dann wäre ja die ID von Vorteil.

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

aso ich möchte die jeweiligen daten (Name telefonnummer ....)
aus den verschiedenen Spalten der Datenbank löschen

:rolleyes: 😁 😮

830 Beiträge seit 2005
vor 16 Jahren

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.

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

habe mal nen screenshot gemacht vllt hilft euch das mehr mich zu verstehn 🙂

:rolleyes: 😁 😮

830 Beiträge seit 2005
vor 16 Jahren

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.

3.430 Beiträge seit 2007
vor 16 Jahren

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

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

könntest du mir mal an einem beispiel zeigen wie die split methode funktioniert da ich sie noch nicht kenne 🙂

:rolleyes: 😁 😮

3.430 Beiträge seit 2007
vor 16 Jahren

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

830 Beiträge seit 2005
vor 16 Jahren

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.

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

ginge das dann auch so ? :

String mitarbeiter = Convert.ToString(listBox1.SelectedItem);
               String[] teile = mitarbeiter.Split('-');

:rolleyes: 😁 😮

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

darf an der datenbank leider nichts verändern ist ne vorgabe

:rolleyes: 😁 😮

830 Beiträge seit 2005
vor 16 Jahren

HILFE, ich werde ignoriert.......

Sche.. drauf, das kann ich auch 8)

Viel Spaß noch!

Ohne Ziel ist auch der Weg egal.

H
haxXxy Themenstarter:in
212 Beiträge seit 2007
vor 16 Jahren

hatte den beitrag schon geschrieben als ich deinen beitrag gesehn habe schaue gerade in der doku nach 🙂

:rolleyes: 😁 😮