tl;dr:コードを動作させようとして問題が発生しました。Anko を使用してデータベースを作成し、列を挿入できるようになりましたが、データを挿入しようとすると、sqliteman でデータベースを開くと、列が空になります。また、文字列/整数でデータを取得してに送信する方法もわかりません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)
}
これは機能するはずですが、機能しませんデータベースにすべての列があり、エラーメッセージは表示されませんが、追加されていません
以下のコードが呼び出されます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)
}
}
データベースからデータを取得する必要があるため、これを行う方法がわかりません。ドキュメントを読んでいますが、これを実装する方法がわかりません
_id
3つの列がname
あり、次のday
ようなことをしていたとしましょう
db.select("main_db","_id","name","day").exec {
parseSingle //something goes here to send the data to String/Int
}