java - 无法从 CursorWindow 读取第 0 行第 5 列。在访问数据之前确保游标已正确初始化

标签 java sqlite android-studio android-sqlite android-sql

Log Cat

Caused by: java.lang.IllegalStateException: Couldn't read row 0, col 5 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it. at android.database.CursorWindow.nativeGetString(Native Method) at android.database.CursorWindow.getString(CursorWindow.java:465) at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51) at com.example.workhours.DataBaseHelper.ViewAllNotes(DataBaseHelper.java:90) at com.example.workhours.MainActivity.ViewAllNotes(MainActivity.java:55) at com.example.workhours.MainActivity.onCreate(MainActivity.java:37)

public  ArrayList<newNote> ViewAllNotes() {
    ArrayList<newNote> arrayList = new ArrayList<>();
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery("SELECT NOTEMEMOS FROM " + TABLE_NAME, null);

    while(cursor.moveToNext()){
        String notes = cursor.getString(5);
        newNote newNote = new newNote(notes);
        arrayList.add(newNote);
    }
    return arrayList;
}

查询

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT, DATE TEXT, TIMESHIFTSTART INTEGER, TIMESHIFTENDS TEXT, NOTES TEXT, NOTEMEMOS TEXT)");
}

最佳答案

您的光标有一列SELECT NOTEMEMOS,但您尝试使用getString(5)读取第六列。将其替换为 getString(0) 以读取唯一的列值。

关于java - 无法从 CursorWindow 读取第 0 行第 5 列。在访问数据之前确保游标已正确初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60033503/

相关文章:

ios - 我的核心数据模型出了什么问题?

Android studio 4.2 找不到模拟器、设备或 AVD 管理器

c# - 检测用户是否输入假名的服务或策略?

java - 如何使用另一个组合框控制一个组合框?

Java hadoop 错误值类 : class RatioCount$WritableArray is not class org. apache.hadoop.io.DoubleWritable

在使用较旧 API 的设备上进行调试时,Android Studio 会显示来自 compileSdkVersion API 的源代码

android - 在 Android Studio 中使用自定义 android.jar

java - 哪个是调用所需 servlet 的最佳方法

sql - 将文本转换为整数

android - 从非 Android 环境访问 SQLite 数据库