#sqlite #android-studio #kotlin
#sqlite #android-studio #kotlin
Вопрос:
все!
Я написал фрагмент кода, и всякий раз, когда он достигает определенной строки, моя программа выходит из строя. Строка, с которой у меня возникла проблема, такова:
val db = this.writableDatabase
Я также пытался с:
val db = super.getWritableDatabase()
И он всегда выходит из строя.
Вот код:
private val DB_NAME = "Keys DB"
private val TABLE_NAME = "Keys Table"
private val COL_ID = "id"
private val COL_VALS = "number of keys"
class DBHelpCreate(var context : Context) : SQLiteOpenHelper (context, DB_NAME,null,1)
{
override fun onCreate (db : SQLiteDatabase?)
{
val generate = "CREATE TABLE " TABLE_NAME " ("
COL_ID "INTEGER PRIMARY KEY AUTOINCREMENT,"
COL_VALS "INTEGER)"
db?.execSQL(generate)
}
override fun onUpgrade (db : SQLiteDatabase?, oldVersion : Int, newVersion : Int)
{
/* Not implemented. */
}
fun add_data(counter: CountKeys)
{
val db = this.writableDatabase
var cv = ContentValues()
...
}
}
// some activity
var db = DBHelpCreate(this)
db.add_data(CountKeys ())
Кто-нибудь видит, что не так?
Комментарии:
1. А что написано в logcat?
2.В именах таблиц / столбцов не допускаются пробелы. Поэтому измените имена или заключите их в квадратные скобки:
private val TABLE_NAME = "[Keys Table]"
private val COL_VALS = "[number of keys]"
3. @forpas, спасибо! Это решило проблему.