2015-06-08 5 views
0

Это мой код для запроса моей базы данных Android.Андроид базы данных запрос не возвращает никаких результатов

int lastID = -1; 

String selectQuery = "SELECT * FROM " + TABLE_MAIN + " WHERE " + KEY_ID + " > " + lastID; 

Log.i(LOG, selectQuery); 
SQLiteDatabase db = this.getReadableDatabase(); 
Cursor c = db.rawQuery(selectQuery, null); 

if (c.moveToFirst()) 
{ 
    ... 
} 
else 
{ 
    return null; 
} 

По какой-то причине каждый раз, когда это работает (я отлажена его) всегда попадает в еще из заявления, если и я не знаю почему. Это заставило меня поверить, что мой запрос неверен, но я не вижу, как это неправильно. Я знаю, что имя таблицы и имя столбца верны, потому что это глобально определенная переменная. Кто-нибудь может заметить мою ошибку? Благодаря

+0

Наиболее очевидной причиной может быть то, что в вашей таблице нет данных, соответствующих вашему выбору. – laalto

+0

да нет, я проверил это с помощью средства просмотра базы данных, он имеет данные – kabeersvohra

+0

Уверен, что это была та самая база данных, на которую вы смотрели? – laalto

ответ

1

Протестируйте ваш выбор, как

String selectQuery = "SELECT * FROM " + TABLE_MAIN + " WHERE " + KEY_ID + " > " + "'" + lastID + "'"; 

Некоторые устройства (это случилось со мной в некоторых устройствах) SQLite целое работает только с> 1 без простых кавычек, но числа < = 0 нужны простые кавычки. Зачем? Я не знаю.

+0

для этого, попробовал, но это не решило мою проблему:/ – kabeersvohra

+0

на самом деле это действительно решило мою проблему после тестирования снова ... спасибо! – kabeersvohra