Как исправить в sqLite: Не удалось прочитать строку 0, столбец 0 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь получить данные из sqLite из этой таблицы

        db.execSQL("create table cabling(Code text, note text, lat text, lng text, teamColor text, jobType text, image1 text, image2 text, image3 text, image4 text, image5 text, cable text, assawer text, ankor text, mwaser text, building_no text)")

функция возврата

@SuppressLint("Recycle")
override fun returnCabling(db: SQLiteDatabase): ArrayList<CablingData> {
    val cur = db.rawQuery("select * from cabling", arrayOf())

    val cabling = ArrayList<CablingData>()
    cur.moveToFirst()

    while (!cur.isAfterLast) {
        cabling.add(
            CablingData(
                cur.getString(cur.getColumnIndex("Code")),
                cur.getString(cur.getColumnIndex("note")),
                cur.getString(cur.getColumnIndex("lat")),
                cur.getString(cur.getColumnIndex("lng")),
                cur.getString(cur.getColumnIndex("teamColor")),
                cur.getString(cur.getColumnIndex("jobType")),
                cur.getString(cur.getColumnIndex("image1")),
                cur.getString(cur.getColumnIndex("image2")),
                cur.getString(cur.getColumnIndex("image3")),
                cur.getString(cur.getColumnIndex("image4")),
                cur.getString(cur.getColumnIndex("image5")),
                cur.getString(cur.getColumnIndex("cable")),
                cur.getString(cur.getColumnIndex("assawer")),
                cur.getString(cur.getColumnIndex("ankor")),
                cur.getString(cur.getColumnIndex("mwaser")),
                cur.getString(cur.getColumnIndex("building_no"))
            )
        )

        AppLogger.log("cabling", cabling.toString())
        cur.moveToNext()
    }
    cur.close()
    return cabling
}

это возврат

Не удалось не читать строку 0, столбец 0 из CursorWindow. Убедитесь, что курсор инициализирован правильно, прежде чем получить доступ к данным из него.

, но когда я использую это

val cur2 = db.rawQuery("select Code, note, lat, lng from cabling", arrayOf())
    cur2.moveToFirst()
    while (!cur2.isAfterLast) {
        AppLogger.log("testststs", cur2.getString(cur2.getColumnIndex("Code")))

        cur2.moveToNext()

    }

, это будет работать НО, если я запишу все элементы в выберите утверждение, которое он собирается обработать sh

выберите код, примечание, lat, lng, teamColor, jobType, image1, image2, image3, image4, image5, кабель, assawer, ankor, mwaser, building_no из кабельной системы

это утверждение не сработает

спасибо всем за помощь

<3 </strong>

...