Cursor gibt immer null zurück, auch wenn die Datenbank nicht leer ist. Warum? und wie löst man das? Vielen Dank.Android: Cursor gibt immer null zurück, auch wenn die Datenbank nicht leer ist
public StatParcours getOneUserInfo(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_USER, new String[] { KEY_USER_ID,
KEY_STUDN , KEY_STUDBD, KEY_TEACHN, KEY_TEACHBD}, KEY_USER_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
StatParcours stat = null;
if ((cursor!= null)&&(cursor.moveToFirst())){
stat = new StatParcours(
Integer.parseInt(cursor.getString(0)),
cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4));
}
return stat ;
}
Sind Sie sicher, dass der Cursor null ist? Vielleicht hat es einfach keine Reihen? Haben Sie überprüft, dass die Abfrage, die Sie erstellen, mindestens 1 Ergebnis zurückgibt? – Karakuri
Ja, ich habe den Datenbankinhalt mit Log geprüft, als den angezeigten Wert von Stat, wenn ich diese Methode anrufe, die immer Null ist. So verstanden, dass Cursor immer Null ist. – user2613911
Wenn Sie 'Log.d (" Foo "," Cursor ist: "+ Cursor);' Drucken '' Cursor ist: null'? Wenn "null" nicht gedruckt wird, ist der Cursor leer. Leer bedeutet, dass Ihre Abfrage 0 Elemente gefunden hat, die den Kriterien entsprechen, und Sie müssen möglicherweise überprüfen, ob Ihre Abfrage falsch ist. – zapl