SQLIte Abfrage leer cursor
Ich versuche Daten aus meiner SQLite Datenbank in der Android mit dieser Abfrage.
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = 1 ", null);
Jedoch den cursor, der zurückgegeben wird, leer ist, eine Task-id mit dem Wert 1 vorhanden ist.
Wenn ich dies Tue,
Cursor cursor = db.rawQuery("SELECT * FROM Task", null);
mein cursor alle Werte enthält - einschließlich einer taskId mit dem Wert 1.
Habe ich versucht, alle der folgenden Befehle sowie, keiner von Ihnen arbeitete:
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = " + 1, null);
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = " + "'1'", null);
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = ?", new String[]{"1"});
taskId ist vom Typ Integer, versuchte Sie es mit Text, ebenfalls nicht funktioniert.
Gibt es etwas, das ich nicht beachten? Hilfe wäre sehr geschätzt!
BEARBEITEN:
Den Code für das erzeugen der Datenbank:
CREATE TABLE Task + " (" +
_id INTEGER PRIMARY KEY," +
"taskDescription TEXT, +
"taskId INTEGER," +
"taskName TEXT" +
"PreviousTaskID " + "REFERENCES " + "PreviousTasks " +
"(" + PreviousTasks._ID + "))"
Wie wärs mit einigen code?
Können Sie zeigen die definition der Tabelle?
Pff, immer noch nichts falsch... sind Sie sicher, dass Sie sich nicht mischen, das _id Feld mit taskId??
Ich versuchte es mit beiden _id und taskId - Gleiches Ergebnis 🙁
Können Sie zeigen die definition der Tabelle?
Pff, immer noch nichts falsch... sind Sie sicher, dass Sie sich nicht mischen, das _id Feld mit taskId??
Ich versuchte es mit beiden _id und taskId - Gleiches Ergebnis 🙁
InformationsquelleAutor deimos1988 | 2014-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
ich hoffe, nützlich für Sie..
InformationsquelleAutor dipali
Wenn Sie eine neue Datenbank, zum Beispiel mit 4 Feldern und verwendet diese db dann, wenn Sie "neues Feld hinzufügen" musst du Sie neu erstellen-Datenbank auf dem Handy löschen und erstellen.
Muss Ihre Datenbank unter /data/data/com.yourapp.Paket/Datenbanken/verwenden diese oder diese öffnen und prüfen, ob etwas falsch.
Entfernen Sie alle Leerzeichen :
Schritt wird der cursor auf das erste Ergebnis :
Verwenden getInt:
InformationsquelleAutor Smile2Life
Ich habe gerade herausgefunden, was das problem war: Beim Zugriff auf den cursor, benutzte ich folgenden code:
Statt, was ich zu tun hatte, war dies:
Ich habe nicht bemerkt, die Fehler, wenn ich abgefragt
da mein cursor hatte mehr als einen Eintrag und. Aber wenn ich abgefragt
den cursor hat nur einen Eintrag, wurde übersprungen, weil der while-Schleife.
moveToFirst()
auch.InformationsquelleAutor deimos1988
Wenn du meinst, -1 Anzahl der Elemente der cusor, indem er "leer" ist, so dass Sie nur verwenden moveToFirst() vor.
dann, wenn Sie versuchen würde, zu berufen
es gibt != 0 (wenn die Abfrage mehr als 0).
InformationsquelleAutor user3522383