2013-05-07 6 views
0

Когда я пытаюсь вставить в базу данных 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 + "));"; 

Что это моя проблема?

ответ

2

Хорошо, я нашел проблему. Использование db.beginTransaction(); и db.endTransaction(); было моей проблемой. Удалены эти строки, и все работает нормально.

+0

+1 Хм хорошо, что вы нашли решение самостоятельно: – Lucifer