Курсор Android SQLLiteDataBase, возвращающий 0 строк - PullRequest
4 голосов
/ 15 июня 2011

На всю жизнь я не могу заставить курсор вернуть какие-либо данные.Я проверил, что это данные в базе данных, и мои вставки работают.Официальная ошибка:

CursorIndexOutOfBoundsException: Индекс 0 запрошен, с размером 0

Объявления верхнего уровня:

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBAdapter(Context ctx) 
{
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    this.db = this.DBHelper.getWritableDatabase();
}

Моя функция:

public String getRandomEntry()
    {
    int rand;
    Random random = new Random();
    int numEntries = (int)this.getCount();

    if(numEntries == 0)
        return "ERROR: Database is empty.";
    rand = random.nextInt(numEntries);

    Cursor cursor = DBHelper.getWritableDatabase().rawQuery(
            "SELECT * FROM " + DATABASE_TABLE 
            + " WHERE " + COLUMN_A + " = " + 0, null);

    Log.i("numEntries", Integer.toString(numEntries));
    Log.i("rand", Integer.toString(rand));
    Log.i("cursor", Integer.toString(cursor.getCount()));

    cursor.moveToFirst();
    return cursor.getString(0);
}

Я также пытался схватить курсор так:

Cursor cursor = db.rawQuery(
            "SELECT * FROM " + DATABASE_TABLE 
            + " WHERE " + COLUMN_A + " = " + 0, null);

Пожалуйста, дайте мне свои мысли!Спасибо !!

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Прежде всего попробуйте выполнить запрос следующим образом:

String args[] = new String[]{"0"};

Cursor cursor = db.rawQuery(
        "SELECT * FROM " + DATABASE_TABLE + " WHERE " + COLUMN_A + " = ?", args);

Если это не поможет, проверьте вашу базу данных с помощью внешнего инструмента, если вы запрашиваете возвращаемые строки там.

2 голосов
/ 15 июня 2011

Здесь нет ничего случайного.Похоже, что вы ищете column_a со значением 0 каждый раз.

Я бы предположил, что column_a не имеет ничего со значением 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...