Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Datenbank auslesen funktioniert nicht?!


theMen - Mi 22.02.12 19:30
Titel: Datenbank auslesen funktioniert nicht?!
Hey zusammen,

habe heute vergeblich versucht mittels c# auf meine Access Datenbank zu zu greifen.


C#-Quelltext
1:
2:
3:
string Tag3 = "Bewertung=1 AND Bewertung=2";   // Variable

OleDbCommand sqlKommando = new OleDbCommand("SELECT * FROM "+ tabelle +" WHERE Unit="1" AND " + Tag3 + ";"this.verbindung);

mein Problem ist jetzt das das mit 2x AND in der WHERE Anweisung nicht geht mit einer AND Anweisung hingegen schon.... habt ihr da eine Lösung für mich??
Ich will einfach nur alle Datensätze haben aus Unit 1 mit der Bewertung 1 und alle Datensätze aus Unit 1 mit Bewertung 2.

Danke schonmal im Voraus.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Ralf Jansen - Mi 22.02.12 20:42

Zitat:
2x AND in der WHERE Anweisung nicht geht mit einer AND Anweisung hingegen schon


Das ist mal wieder eine erschöpfende Fehlerbeschreibung :( Du solltest uns schon mehr erzählen als 'geht nicht'.

Zitat:
string Tag3 = "Bewertung=1 AND Bewertung=2"; // Variable


Wie kann etwas gleich 1 und gleich 2 sein? Fällt dir was auf? Du meinst doch wohl eher in der Beschreibung Spalte soll 1 oder 2 stehen.


theMen - Mi 22.02.12 20:52

Ja genau in der Beschreibung Spalte soll 1 oder 2 stehen. Und beide sollen sich in Unit 1 befinden...

geht das jetzt mit OR?? weil wenn ihr OR setzte dann zeigt er mir zu viele datensätze an. Oder heißt das bei Access gar nicht OR?

'geht nicht' heißt einfach nur ich bekomme falsche datensätze.


Ralf Jansen - Mi 22.02.12 20:58

Zitat:
geht das jetzt mit OR?? weil wenn ihr OR setzte dann zeigt er mir zu viele datensätze an. Oder heißt das bei Access gar nicht OR?


OR ist korrekt. Aber das AND zieht zuerst. Auf 'Bewertung=2' zieht also die Einschränkung auf Unit nicht mehr. Setze mal eine Klammer um den Tag3 string. Wobei ich nicht Syntax-fest bin in ACCESS.
In richtigem SQL (und nicht im ACCESS Abklatsch) sollte es so aussehen.


SQL-Anweisung
1:
SELECT * FROM tabelle WHERE Unit='1' AND (Bewertung=1 OR Bewertung=2)                    


theMen - Mi 22.02.12 21:59

vielen dank funktioniert wunderbar :)