Пожалуйста, проверьте следующий код:java.lang.IllegalStateException: Не удалось прочитать строку 0, столбец 10 из CursorWindow
List<Database> zaznamy = new ArrayList<Database>();
String selectQuery = "SELECT X FROM Data WHERE LEVEL_1 =-24 AND LEVEL_2 =-48 AND LEVEL_3 =-55 AND LEVEL_4 =0";
File dbfile = new File("/sdcard/rtls/Databases/"+DBName);
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
Cursor cursor = db.rawQuery(selectQuery,null);
String bodX="empty";
if (cursor.moveToFirst())
{
do {
Database zaznam = new Database();
zaznam.setX(Integer.parseInt(cursor.getString(10)));
zaznamy.add(zaznam);
} while (cursor.moveToNext());
for (Database cn : zaznamy)
{
Log.d("X: ", Integer.toString(cn.getX()));
bodX = (cn.getX()+ "//").toString();
Log.d("X", bodX);
}
}
Он говорит, что это не удалось прочитать строку 0, столбец 10 из CursorWindow. Я проверил базу данных с помощью браузера SQLite. База данных имеет ровно 1 X в столбце 10, строка 0. SQL-запрос работает правильно, я считаю. Может кто-нибудь сказать мне, почему его нельзя читать? Или где ошибка?
РЕДАКТИРОВАТЬ: скорректировал код:
do {
Database zaznam = new Database();
zaznam.setX(cursor.getInt(10));
zaznamy.add(zaznam);
} while (cursor.moveToNext());
из-за целого значения 10-го столбца, но до сих пор нет удачи. Такая же ошибка
Вы уверены, что колонка 10 - строка? Помните, что первый столбец - 0-й. Можете ли вы показать свой запрос на создание таблицы? – Tautvydas
Исправлен код, как показано выше – user3340336