使用Anko添加/查询/解析SQLite

Rod*_*vid 5 sqlite android kotlin anko

tl; dr:我在尝试让我的代码工作时遇到问题,现在我可以使用Anko创建数据库并插入列但是当我尝试插入数据时,当我在sqliteman上打开数据库时,我的列是空的我也不知道如何检索字符串/ Int中的数据以发送到View

这显然工作正常我可以看到我的数据库创建所有具有正确名称的列

class MySqlHelper(ctx: Context) : ManagedSQLiteOpenHelper(ctx, "db_main") {

companion object {
    private var instance: MySqlHelper? = null

    @Synchronized
    fun getInstance(ctx: Context): MySqlHelper {
        if (instance == null) {
            instance = MySqlHelper(ctx.applicationContext)
        }
        return instance!!
    }
}


override fun onCreate(db: SQLiteDatabase) {
    db.createTable("db_main", true,
            "_id" to INTEGER + PRIMARY_KEY + AUTOINCREMENT + NOT_NULL,
            "name" to TEXT,
            "day" to INTEGER)

}

override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
       }

// Access property for Context
val Context.database: MySqlHelper
    get() = getInstance(applicationContext)

}
Run Code Online (Sandbox Code Playgroud)

这应该工作,但它不工作虽然我有数据库中的所有列,我没有得到任何错误消息,他们没有被添加

调用下面的代码 MainActivity

val db = MySqlHelper(this)


fun addtosqllite(title: String, datepicker: DatePicker) {

db.use {
        insert("db_main",
                "_id" to 1,
                "name" to title,
                "day" to  datepicker.dayOfMonth)
     }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何做到这一点 我需要从数据库中检索数据.我一直在阅读文档,但我不知道如何实现

比方说,我有三列_id,nameday 我做这样的事情

db.select("main_db","_id","name","day").exec {
parseSingle //something goes here to send the data to String/Int
}
Run Code Online (Sandbox Code Playgroud)