Я новичок в Android и экспериментирую с SQLite и Android.Я могу получать запросы и использовать результаты курсора, но я не могу заставить этот следующий код работать:
Это мой оператор запроса, где queryWhere = "MyObject =" 1 "" иDATABASE_TABLE_TOQUERY = "FavoriteObjects".Все это нормально при просмотре в средстве просмотра базы данных SQLite, и оно также возвращает правильный результат, если я выполню запрос с помощью моего средства просмотра базы данных SQLite.
public long findObject(String[] keys, String[] values,String DATABASE_TABLE_TOQUERY){
try {
if(keys.length<0 || keys.length!=values.length)
System.exit(-1);
String queryWhere = keys[0]+"=\""+values[0]+"\"";
for(int i=1;i<keys.length;i++) {
queryWhere+=" AND "+keys[i]+"=\""+values[i]+"\"";
}
Cursor mCursor = mDb.query(true, DATABASE_TABLE_TOQUERY, null,
queryWhere, null, null, null, null, null);
if (mCursor != null && mCursor.getCount()>0)
return Long.parseLong(mCursor.getString(mCursor.getColumnIndex(KEY_ROWID)));
}catch (SQLException e) {
return -1;
}
return -1;
}
Когда я получу результаты после выполнения оператора запроса, курсорУ mCursor есть хотя бы одна строка, но когда я получаю доступ к этой строке с помощью mCursor.getString (X), он выдает странную ошибку:
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
Если я проверяю mCursor.getColumnIndex (KEY_ROWID), я получаю 0значение (которое является правильным).У кого-нибудь есть предложения?
Спасибо!Jon