Benutzer mit den meisten Antworten
ComboBox Split SQL

Frage
-
Hi,
ich habe da ein kleine Problem an dem ich nicht so weiter komme wie ich kommen sollte...
Ich habe eine ComboBox die mit Einträgen aus der Datenbank gefüllt wird. Das Ergebnis sieht so aus:
1 - User - 1
Jetzt brauche ich die letzte eins für eine SQL Abfrage.
Ich dachte an ein Array, allerdings weiß ich nicht wie ich das realisieren soll - oder wie ich den letzten Index aus dem Array bekomme ohne die genaue Länge zu wissen. Der Username variiert immerhin ständig.Die Logik ist klar, aber ich komme da einfach nicht drauf :(
C# und VB.NET sind wie eine Schachtel Pralinen, ich weiß nie was ich bekomme xD
Antworten
-
Wenn du die SpieleID haben willst, dann benutzte folgenden Code:
int ID = int.Parse(comboBox1.SelectedItem.ToString().Split('-')[2]);
Koopakiller - http://koopakiller.ko.ohost.de/
- Als Antwort markiert Ionut DumaModerator Donnerstag, 11. Oktober 2012 07:43
-
Also wenn du mit Split arbeitest, muss es ja immer der gleiche Index sein,
vorausgesetzt, die Strings sind immer gleich aufgebaut!Also N - xxx - N
Wobei n beliebig ist und x auch, nur die "-" müssen immer dazwischen sein.
Wenn du also Split auf "-" machst, ist deine SpielID immer auf ..... 2
(ungetestet) ... aber jedenfalls immer am gleichen Index.Wenn du das mit Substring machst, brauchst du nur den Index des 2. "-" und die Gesamtlänge des strings, beides hast du.
Es gibt sogar ein Substring von index bis ende, da brachst nicht mal die Länge des Strings auslesen.
Denke ein Trim() über das Ergebnis solltest dann noch machen und du hast deine Zahl ... wohlgemerkt als string!
Wenn du dann noch eine Zahl brauchst, musst z.B. int.Parse() nehmen, oder die Klasse Convert.- Bearbeitet Christian Leder Donnerstag, 6. September 2012 19:33
- Als Antwort markiert Ionut DumaModerator Donnerstag, 11. Oktober 2012 07:43
Alle Antworten
-
Hallo
Du könntest beispielsweise die Methode .Split('-') von string nutzen um ein Array zu erzeugen. Damit splittest du den Text an den Bindestichen auf und nimmst die das Element mit dem Index 2.
Alternativ könnte man sich eine Lösung über Regex.Matches überlegen. Welches nur die 2. Zahl findet (sofern es immer eine ist).
Koopakiller - http://koopakiller.ko.ohost.de/
-
- Bearbeitet Christian Leder Donnerstag, 6. September 2012 18:47
-
Mit dem Gedanken Substring habe ich auch gespielt - allerdings kenne ich die Länge des Namens nicht.
Also folgendes liegt zu Grunde:
Werte die aus der Tabelle zurückgegeben werden:
ID = 1
Name = XXX
SpieleID = 1
Jetzt will ich SpieleID haben. Länge des Namens ist unbekannt. Zahlen sind immer 2 um String das erste und das letzte Value. Das bedeutet 1 - xx - 1
Wenn dann muss ich auf ein Array setzen, aber ich habe keine Ahnung wie ich das bewerkstelligen soll.
Mit Split habe ich das schon probiert, ich finde nur nicht den richtigen Index, da er automatisch gefunden werden muss :(
C# und VB.NET sind wie eine Schachtel Pralinen, ich weiß nie was ich bekomme xD
-
Wenn du die SpieleID haben willst, dann benutzte folgenden Code:
int ID = int.Parse(comboBox1.SelectedItem.ToString().Split('-')[2]);
Koopakiller - http://koopakiller.ko.ohost.de/
- Als Antwort markiert Ionut DumaModerator Donnerstag, 11. Oktober 2012 07:43
-
Also wenn du mit Split arbeitest, muss es ja immer der gleiche Index sein,
vorausgesetzt, die Strings sind immer gleich aufgebaut!Also N - xxx - N
Wobei n beliebig ist und x auch, nur die "-" müssen immer dazwischen sein.
Wenn du also Split auf "-" machst, ist deine SpielID immer auf ..... 2
(ungetestet) ... aber jedenfalls immer am gleichen Index.Wenn du das mit Substring machst, brauchst du nur den Index des 2. "-" und die Gesamtlänge des strings, beides hast du.
Es gibt sogar ein Substring von index bis ende, da brachst nicht mal die Länge des Strings auslesen.
Denke ein Trim() über das Ergebnis solltest dann noch machen und du hast deine Zahl ... wohlgemerkt als string!
Wenn du dann noch eine Zahl brauchst, musst z.B. int.Parse() nehmen, oder die Klasse Convert.- Bearbeitet Christian Leder Donnerstag, 6. September 2012 19:33
- Als Antwort markiert Ionut DumaModerator Donnerstag, 11. Oktober 2012 07:43
-
Hallo Dom2011,
Wir gehen davon aus, dass die Antworten Dir weitergeholfen haben.
Wenn ja, wäre es hilfreich wenn Du diese Lösung bestätigen würdest, sodass andere Leute von derselben Situation profitieren können.
Wenn nein, neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.Danke und viele Grüße,
Ionut