Entwickler-Ecke
WinForms - Access Datenbank 2 Zeilen vergleichen?
MaxN - Di 15.03.16 00:49
Titel: Access Datenbank 2 Zeilen vergleichen?
Hey Leute,
habe ein Problem und zwar bin ich gerade dabei ein Vokabeltrainer mit einer Access-Datenbank zu erstellen. Jedoch bleibe ich bei ein Problem stecken, und zwar wie prüfe ich z.b das, dass Deutsche Wort mit dem Lateinischen übereinstimmt? (Halt Zeilen überprüfung oder per ID).
Habe schon vieles probiert, jedoch ohne Erfolg. Meine Datenbank sieht wie Folgt aus. (ID(Primärschlüssel),Deutsch,Latein). Und ich versuche es per Textboxen zu prüfen.
Hoffe jemand hat eine Idee.
Gute Nacht und Danke im vorraus. :)
Mfg
erfahrener Neuling - Di 15.03.16 09:56
Hi, ich kenn mich zwar nicht mit AccessDatenbanken aus, aber wie du an deine Werte in der Datenbank kommst, weißt du hoffentlich. Denn dann ist es ja nicht mehr schwer, diese Werte per Index/per Id zu vergleichen.
Vielleicht solltest du noch mal erklären, wo genau dein Problem liegt.
Gruß
Neuling
EDIT: Ich würde es zum Beispiel so machen, dass nach dem Start die komplette Tabelle in ein 2-dimensionales Array a´la string[][] Vokabeln = new String[2][...] geladen wird, so hättest du alle Vokabeln gleich als Päärchen parat.
MaxN - Di 15.03.16 15:48
Hey,
danke für die Antowrt.
Um das mal zu veranschaulichen zeige ich mal mein Layout und die Db.
Das Layout:
http://www.directupload.net/file/d/4294/e9fvhaq8_png.htm
Die Datenbank:
http://www.directupload.net/file/d/4294/5kvtl85k_png.htm
Wie man sieht sind die Spalten "Deutsch,Latein" in einer seperaten Spalte.
Im Layout wird mir das Deutsche Wort in der rechten TextBox ausgegeben (ReadOnly) und die Lateinische übersetzung muss Manuell in der linken TextBox eingegeben werden.
Meine Frage war, wie man die Abfrage in C# gestaltet um die beiden nebeneinander liegenden Attribute zu vergleichen und zu Prüfen ob sie auch in der gleichen Reihe sind um sie als richtig oder falsch zuzuordnen.
Mfg :)
FinnO - Di 15.03.16 16:19
Moin,
zu dem Zeitpunkt wo du die Vokabel in deiner GUI abfragst, hast du ja sicherlich schon die ganze Zeile aus der Datenbank abgefragt. Du hast also schon ein Objekt, welches Deutsch, Latein und ID enthält. Jetzt musst du doch lediglich prüfen, ob die Nutzereingabe mit deinem zwischengespeicherten Objekt übereinstimmt. Ein erneuter Zugriff auf die Datenbank ist da nicht wirklich erforderlich.
Gruß
Finn
erfahrener Neuling - Di 15.03.16 16:26
genau, wie Finn schon sagte, musst du die Daten ja nur einmal aus der Datenbank holen, dann kannst du sie auch gleich Gruppiert abspeichern (zB in ein Array)
zB so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private String[][] Vokabeln = new String[2][AnzahlVokabeln];
private void ladeVokabeln (...) { for(int i=0; i<Vokabeln[0].Length; i++) { Vokabeln[0][i] = getVokabelnVonWoAuchImmer(); Vokabeln[1][i] = getVokabelnVonWoAuchImmer(); } } |
dann musst du nur noch Vokabel[0][i] mit Vokabel[1][i] vergleichen.
Wieso speicherst du die überhaupt in einer Datenbank ab?
Für so etwas würde auch locker eine txt-Datei reichen ;)
MaxN - Di 15.03.16 17:09
erfahrener Neuling hat folgendes geschrieben : |
genau, wie Finn schon sagte, musst du die Daten ja nur einmal aus der Datenbank holen, dann kannst du sie auch gleich Gruppiert abspeichern (zB in ein Array)
zB so:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private String[][] Vokabeln = new String[2][AnzahlVokabeln];
private void ladeVokabeln (...) { for(int i=0; i<Vokabeln[0].Length; i++) { Vokabeln[0][i] = getVokabelnVonWoAuchImmer(); Vokabeln[1][i] = getVokabelnVonWoAuchImmer(); } } |
dann musst du nur noch Vokabel[0][i] mit Vokabel[1][i] vergleichen.
Wieso speicherst du die überhaupt in einer Datenbank ab?
Für so etwas würde auch locker eine txt-Datei reichen ;) |
Natürlich würde es reichen, wollte es jedoch als Übung haben, da ich gerade mit Datenbanken angefangen habe zu Arbeiten.
Habe mein Problem eben nach langem tüffteln gelöst.
Simpel:
SQL-Anweisung
1:
| "SELECT Deutsch,Latein FROM Vokabeln WHERE ID = @id" |
dann die aus dem Reader gelesenen Daten in einer Variable abspeichern und in einer If-Anweisung mit der LateinTextBox prüfen.
Manchmal scheint alles um einiges schwerer als es ist :)
Trotzdem danke für eure Mühe.
Moderiert von
Th69: SQL-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!