Код возвращает имя столбца, но количество столбцов равно нулю в Kotlin - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь получить все данные в базе данных, и это мой код, который делает это.

private fun readAllPoetsDB(): Cursor {
            val db = readableDatabase
            return db.rawQuery("SELECT * FROM INFO",null)
        }

        fun readAllPoets(): ArrayList<Poet> {
            val poets = ArrayList<Poet>()
            val cursor = readAllPoetsDB()
            println("this is cursor count")
            println(cursor.count)
            println(cursor.getColumnName(0))
            var poetid: String
            var faname: String
            var enname: String
            cursor.moveToNext()
            while (!cursor.isAfterLast) {
                    poetid = cursor.getString(cursor.getColumnIndex(DBPoet.UserEntry.COLUMN_POET_ID))
                    faname = cursor.getString(cursor.getColumnIndex(DBPoet.UserEntry.COLUMN_FANAME))
                    enname = cursor.getString(cursor.getColumnIndex(DBPoet.UserEntry.COLUMN_ENNAME))
                    poets.add(Poet(poetid, faname, enname))
                     cursor.moveToNext()
            }
            cursor.close()
            return poets
        }

строка println(cursor.count) возвращает ноль, но cursor.getColumnName возвращает правильное имя. Пожалуйста, не забывайте, что я проверил свое имя таблицы, и оно на 100% правильно. Кроме того, мой файл базы данных является локальным, и он не создается внутри приложения, он добавляется вручную. Так в чем же проблема?

1 Ответ

1 голос
/ 01 марта 2020

С Cursor.java: cursor.count (getCount()) возвращает количество строк , возвращаемых Cursor. cursor.columnCount (getColumnCount()) возвращает количество столбцов в Cursor.

...