-1

我有一个带有数据库的 Kolin Android 应用程序。我使用 Anko 库进行数据库通信。我可以在我的数据库中插入数据,但是当我尝试从我的数据库中获取数据行时遇到了一些麻烦。

我尝试通过以下代码获取数据行

try {
           var result = select("projects").where("rowid = {id}",
                    "id" to 1).parseList(StringParser)

            Toast.makeText(applicationContext,result.toString(),Toast.LENGTH_LONG).show()

        } catch(e: Exception) {
            Toast.makeText(applicationContext,e.toString(),Toast.LENGTH_LONG).show()
        }

如何获取具有给定 id 的行的内容

目前我收到此错误

无效行:SingleColumnParser 的行必须恰好包含一列

4

2 回答 2

0

例子 :

data class Controler(val id: Int, var name: String, val ssid: String,val password: String,val serialnumber: String): Serializable {}

并在您的活动中->

select("projects", "id", "name", "ssid", "password", "serialnumber")
                .whereArgs("(id = {controlerId}) ", "controlerId" to id)
                .parseOpt(object : MapRowParser<Controler> {
                    override fun parseRow(columns: Map<String, Any?>): Controler {
                        controler = Controler(columns.getValue("id").toString().toInt(),
                                columns.getValue("name").toString(),
                                columns.getValue("ssid").toString(),
                                columns.getValue("password").toString(),
                                columns.getValue("serialnumber").toString())
                        return controler as Controler
                    }

                })
于 2019-01-06T13:18:08.810 回答
-1

嗨,您必须分享完整的代码和日志,显示什么消息?尝试这个。为什么不使用“_id”?需要 Sqlite。

select("projects")
        .where("(_id = {id}),
                "id" to 1)
于 2017-06-26T20:02:16.687 回答