无法从CursorWindow中读取第0行,第-1列,错误。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法从CursorWindow中读取第0行,第-1列,错误。相关的知识,希望对你有一定的参考价值。
我想从外部数据库中制作简单的recyclerview,但是应用程序崩溃了。 这是在logcat中。
无法从CursorWindow读取第0行,第1列。 在从Cursor访问数据之前,请确保Cursor被正确初始化。
数据库访问类。
public class DatabaseAccess {
private SQLiteDatabase database;
private SQLiteOpenHelper openHelper;
private static DatabaseAccess instance;
private DatabaseAccess (Context context) {
this.openHelper = new MyDatabase(context);
}
public static DatabaseAccess getInstance(Context context) {
if (instance == null) {
instance = new DatabaseAccess(context);
}
return instance;
}
public void open() {
this.database = this.openHelper.getWritableDatabase();
}
public void close() {
if (this.database!= null) {
this.database.close();
}
}
public ArrayList<CAR> getAllCars() {
ArrayList<CAR> cars = new ArrayList<>();
Cursor cursor = database.rawQuery(" SELECT * FROM " + MyDatabase.CAR_TB_NAME, null);
if (cursor != null && cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex(MyDatabase.CAR_CLN_ID));
String model = cursor.getString(cursor.getColumnIndex(MyDatabase.CAR_CLN_MODEL));
String color = cursor.getString(cursor.getColumnIndex(MyDatabase.CAR_CLN_COLOR));
double dpl = cursor.getDouble(cursor.getColumnIndex(MyDatabase.CAR_CLN_DPL));
CAR c = new CAR(id,model,color,dpl);
cars.add(c);
}
while (cursor.moveToNext());
cursor.close();
}
return cars;
}
}
答案
当我纠正了这部分代码后,错误就消失了。
int id = cursor.getInt(cursor.getColumnIndex(MyDatabase.CAR_CLN_ID));
String model = cursor.getString(cursor.getColumnIndex(MyDatabase.CAR_CLN_MODEL));
String color = cursor.getString(cursor.getColumnIndex(MyDatabase.CAR_CLN_COLOR));
double dpl = cursor.getDouble(cursor.getColumnIndex(MyDatabase.CAR_CLN_DPL));
到
int id = cursor.getInt(0);
String model = cursor.getString(1);
String color = cursor.getString(2);
double dpl = cursor.getdouble(3);
以上是关于无法从CursorWindow中读取第0行,第-1列,错误。的主要内容,如果未能解决你的问题,请参考以下文章
嗨,我不知道如何修复此游标错误,“java.lang.IllegalStateException:无法从 CursorWindow 读取第 0 行,第 1 列。”
错误:无法从 CursorWindow 读取第 0 行 col -1。确保在访问数据之前正确初始化光标
Android:无法从CursorWindow读取第0行,第3列。在从中访问数据之前,请确保正确初始化Cursor
React Typescript:第 0 行:解析错误:无法读取未定义的属性“名称”
SQLiteBlobTooBigException:行太大,无法放入 CursorWindow requiredPos=0,totalRows=1