Agregar / Consultar / Analizar SQLite usando Anko

tl; dr: Tengo problemas para que mi código funcione, ahora puedo crear la database usando Anko e insert las columnas, pero cuando bash insert los datos y cuando abro la database en sqliteman, mis columnas están vacías. también no sé cómo recuperar los datos en cadenas / Int para enviar a una View

Esto aparentemente funciona bien , puedo ver mi database creada con todas las columnas con el nombre correcto

 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) } 

Esto debería funcionar pero no funciona. Aunque tengo todas las columnas en la database y no recibo ningún post de error, no se están agregando.

El código siguiente se llama en 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) } } 

No tengo idea de cómo hacer esto . Necesito recuperar los datos de la database. He estado leyendo la documentation, pero no sé cómo implementar esto

Digamos que tengo tres columnas _id , name y day que estaba haciendo algo así como

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

Espero que no sea demasiado tarde. Puedes intentar esto:

 database.use { select("main_db", "_id", "name","day").exec { parseList( object : MapRowParser<Map<String, Any?>> { override fun parseRow(columns: Map<String, Any?>): Map<String, Any?> { Log.e("Your result", columns.toString()) return columns } } ) } 
  • Seleccionar datos de dos tablas en Kotlin Anko
  • Android (Kotlin): sobrescribe el nombre para la input del logging de llamadas
  • Por qué las entidades Room no funcionan con properties inmutables en Android
  • Kotlin Closable y SQLiteDatabase en Android
  • Error al hacer que Enum sea la key principal en la biblioteca de la database de la sala