Autor Beitrag
theMen
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 22.02.12 19:30 
Hey zusammen,

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

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: 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.

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

Für diesen Beitrag haben gedankt: theMen
theMen Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 22.02.12 21:59 
vielen dank funktioniert wunderbar :)