2013-05-02 3 views
1

У меня есть приложение, которое читает и записывает в SQLITE-базу данных.Нет данных в курсоре

public void insertkind(int id, String name, String geburtsdatum, String geschlecht){ 
     long rowId = 1; 
     try{ 
     SQLiteDatabase db = getWritableDatabase(); 
     ContentValues cv = new ContentValues(); 

     cv.put(NAME, name); 
     cv.put(GEBURTSDATUM, geburtsdatum); 
     cv.put(GESCHLECHT, geschlecht); 
     try{ 
      rowId = db.insert(TABLE_NAME_KIND, null, cv); 
     } 
     catch(Exception e){ 
      System.out.println("DES DERF MA NEEEEEEEEEEED SENG!!!!"); 
     } 

     db.close(); 
    } 
    catch (SQLiteException e){ 
     Log.e(TAG, "insert()", e); 
    } 
    finally{ 
     Log.d(TAG, "rowId"); 
    } 
} 

С помощью следующего кода я хочу, чтобы выбрать данные из базы данных:

public Cursor select(){ 
     SQLiteDatabase db = getReadableDatabase(); 
     Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, 
       "" + "", null, null, null, null); 
     System.out.println(cursor.getCount()); 
     return cursor; 
    } 

Я также использовал похожий код в другом приложении. Моя проблема заключается в том, что cursor.getCount() равно 0, но при вставке данных исключений нет. name, geburtsdatum и geschlecht все имеют некоторые значения.

Я не могу проверить базу данных с помощью adb, потому что она не работает на моем компьютере. В чем проблема?

+1

Откуда вы знаете, что нет исключения при вставке? –

+0

Добавьте журнал отладки, чтобы вы точно знали, что происходит, или выполните его с помощью отладчика. И не фильтруйте логарифм, вы можете пропустить что-то важное/ценное. –

ответ

1

Если ваш cursor.getCount() получите 0, ваш запрос выполняется в базе данных.

Я думаю, что проблема может быть в том, где положение, попробуйте установить null вместо "" + ""

Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, null, null, null, null, null); 
0

Хотя я считаю, что Jurac отправил будет работать, только пару вопросов:

  1. Почему ты не вставка идентификатора?
  2. Что вы пытаетесь сделать с "" + ""?

Если вы пытаетесь получить ВСЕ строки без фильтрации с указанными вами четырьмя именами столбцов, то да, передайте null.

В качестве альтернативы, попытайтесь использовать сырое Query

String queryString = "SELECT 1 FROM TABLE_NAME_KIND"; 

курсора курсор = db.rawQuery (QueryString, NULL);

Смежные вопросы