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

Android 代码返回列名称,但Kotlin中的列计数为零,android,sqlite,kotlin,cursor,android-sqlite,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 = ArrayL

我试图在数据库中获取所有数据,这是我的代码

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
        }
行printlncursor.count返回零,但cursor.getColumnName返回正确的名称。 请不要忘记,我已经检查了我的表名,它是100%正确的。 此外,我的数据库文件是本地的,它不是在应用程序中创建的,而是手动添加的。 那么问题出在哪里呢?

来自Cursor.java: cursor.count getCount返回游标返回的行数。
cursor.columnCount getColumnCount返回光标中的列数。

但我的数据库有3行。cursor.count返回零是什么原因造成的?可以打印while循环中的行吗?如果未打印任何内容且cursor.count返回0,则表为空。这正是发生的情况,但表不是空的。这是本地文件,我可以查看。你说的本地是什么意思?它应该在设备/模拟器中。提取它并检查它是否为空。本地的意思是我自己手动将它添加到项目中。它有43行3列数据字段。