SQLite sql Abfrage mit Where und And

  • 6 Antworten
  • Letztes Antwortdatum
H

Heribert500

Ambitioniertes Mitglied
1
Hi alle,

ich bekomme es einfach nicht umgesetzt, in einer sql Abfrage zum Where noch ein And
zu setzten.
Beispiele hab ich gefunden leider hilft es mir nicht.

Das ist meine aktuelle Abfrage

Code:
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_KALENDER + " where rjahr= ? ", new String[]{iyear});

das klappt.
Jetzt möchte ich über And den Monat auch noch übergeben.
Wie muss der Code dann aussehen?

Besten dank
heribert500
 
Code:
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_KALENDER + " where rJahr = ? AND rMonat = ? ", new String[]{iyear, imonth});
 
  • Danke
Reaktionen: Heribert500
Nabend und Danke Thyrion,
funzt.

Dieser Code hier lief bei mir aber ohne Rückgabe
Code:
String where = "rjahr=? AND rmonat=?";
            String[] args = {iyear, "imon"};
            Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_KALENDER + where, args);
weiss nicht warum, sieht doch so aus wie deine code....

heribert500
 
Nicht ganz.

Bei ihm ist bei der "where" - String das erste Zeichen ein Leerzeichen.
Bei Dir fehlt aktuell das Leerzeichen.
 
  • Danke
Reaktionen: Heribert500
Hi markus.tullius,

dank für deine Info, das fehlende Leerzeichen habe ich echt nicht bemerkt.
Aber darüber hatte ich schonmal irgendwo gelesen.- und habe es ja auch so im bestehenden alten
codeteil drinnen - mann mann mann

Wenn alle immer so einfach wär...
Besten Dank
heribert500
 
Noch viel Schlimmer... Du baust folgenden String zusammen: "SELECT * FROM TABLE_KALENDERrjahr=? AND rmonat=?" (die Inhalt von TABLE_KALENDER kenne ich nicht, daher habe ich hier die Variable/Konstante reingeschriebe)

Da fehlt a) ein Leerzeichen vor rjahr und b) das Schlüsselwort "WHERE" - hier hat dich dein eigener Variablenname vermutlich verwirrt.
Und zu deinem Array oben ohne "Rückmeldung": Du übergibst nicht die Variable imon (bzw. deren Inhalt), sondern die Zeichenkette "imon" in deinen Select und dort wird dann ein Monat "imon" gesucht, den es vermutlich in deinen Datensätzen nicht gibt.
Das sähe dann in SQL so aus: SELECT * FROM Tabelle WHERE rjahr = 2015 AND rmonat = 'imon' (Beispielwerte)
 
  • Danke
Reaktionen: Heribert500
ja, ich stimme dir zu, irgendwie hatte ich den Überblick verloren.Vlt. sollte man zwischendurch auch einfach mal den PC links liegen lassen, bischen oxidieren gehen und später weiter machen.

Danke
 
Zurück
Oben Unten