Проблема SQLiteOpenHelper AndroidStudio с записываемыми данными — Kotlin

#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, спасибо! Это решило проблему.