代码返回列名,但Kotlin中的列数为零

时间:2020-03-01 13:43:33

标签: android sqlite kotlin cursor android-sqlite

我正在尝试获取数据库中的全部数据,而这正是我的代码。

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 个答案:

答案 0 :(得分:1)

来自Cursor.java
cursor.countgetCount())返回Cursor返回的的数量。
cursor.columnCountgetColumnCount())返回Cursor列的数量

相关问题