Ich erhalte diese Fehlermeldung:SQLite Cursor ist falsch
java.lang.IllegalStateException: Es konnte keine Zeile 0, Spalte 28 von CursorWindow lesen. Stellen Sie sicher, dass der Cursor korrekt initialisiert ist, bevor Sie auf Daten zugreifen.
Hier ist mein Cursor aus meiner DB-Handler-Klasse ... gibt es sichtbare Fehler?
// retrieve a single friend
public Friend getFriend(int id){
SQLiteDatabase sqLiteDatabase = this.getReadableDatabase();
Friend friend = null;
if(checkIsDataAlreadyInDBorNot(TABLE_FRIENDS, KEY_ID, id))
{
Cursor cursor = sqLiteDatabase.query(TABLE_FRIENDS, new String[] {
KEY_ID, KEY_GEN, KEY_FIRSTNAME, KEY_MIDDLENAME,
KEY_LASTNAME, KEY_BD, KEY_BM, KEY_BY, KEY_RN, KEY_HC,
KEY_HT, KEY_NB, KEY_NS, KEY_SP, KEY_RS, KEY_CH, KEY_P,
KEY_FC, KEY_FMU, KEY_LFM, KEY_FMO, KEY_LFMG, KEY_FTS,
KEY_FAF, KEY_LFFS, KEY_HO, KEY_OC, KEY_PP}, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
{
cursor.moveToFirst();
}
friend = new Friend(cursor.getInt(0),
cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4),
cursor.getInt(5),
cursor.getInt(6),
cursor.getInt(7),
cursor.getInt(8),
cursor.getString(9),
cursor.getString(10),
cursor.getString(11),
cursor.getInt(12),
cursor.getInt(13),
cursor.getString(14),
cursor.getString(15),
cursor.getInt(16),
cursor.getInt(17),
cursor.getString(18),
cursor.getString(19),
cursor.getString(20),
cursor.getString(21),
cursor.getString(22),
cursor.getString(23),
cursor.getString(24),
cursor.getString(25),
cursor.getString(26),
cursor.getString(27),
cursor.getString(28));
}
return friend;
}
Danke laalto! Ich werde es versuchen. – user7422049
Erwägen Sie stattdessen 'getColumnIndexOrThrow() 'zu verwenden ... –
Danke laalto und -CL. Das scheint zu funktionieren! Ich entschuldige mich für die langsame Antwort. – user7422049