Когда я пытаюсь вставить в базу данных SQLite, не появляется сообщение об ошибке. Моя проблема в том, что кажется, что ничего не написано в нем, RowId всегда остается 1. Когда я выбираю из этой таблицы, размер cursor
0.Ошибка ввода: Rowid always 1
Я уверен, что ename
, ezeit
, egenaueres
есть значения.
Вот моя вставка функция:
public void insertereignis(String ename, String ezeit, String egenaueres){
long rowId = -1;
try{
SQLiteDatabase db = getWritableDatabase();
db.beginTransaction();
ContentValues cv = new ContentValues();
System.out.println(ename + ezeit + egenaueres);
cv.put(EREIGNISNAME, ename);
cv.put(EREIGNISZEIT, ezeit);
cv.put(EREIGNISGENAUERES, egenaueres);
rowId = db.insert(TABLE_NAME_EREIGNIS, null, cv);
db.endTransaction();
selectEreignis();
}
catch (SQLiteException e){
Log.e(TAG, "insert() Ereignis", e);
}
finally{
Log.d(TAG, "insert(): Ereignis rowId=" + rowId);
}
Вот моя функция выбора, которая получает 0 для размера курсора:
public Cursor selectEreignis(){
SQLiteDatabase db = getReadableDatabase();
db.beginTransaction();
Cursor cursor = db.query(TABLE_NAME_EREIGNIS, new String[] {"ereignisname", "ereigniszeit", "ereignisgenaueres"},
null, null, null, null, null);
db.endTransaction();
System.out.println("HALLLIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII" + cursor.getCount());
return cursor;
}
таблица выглядит следующим образом:
private static final String TABLE_EREIGNIS_CREATE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME_EREIGNIS + " (" + ereignisid + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ EREIGNISNAME + " TEXT, " + EREIGNISZEIT + " TEXT, " + EREIGNISGENAUERES + " TEXT, " + KINDID + " INTEGER, FOREIGN KEY (" + KINDID + ") REFERENCES " + TABLE_NAME_Kind + "(" + id + "));";
Что это моя проблема?
+1 Хм хорошо, что вы нашли решение самостоятельно: – Lucifer