kotlin sqlite создать две таблицы - PullRequest
0 голосов
/ 25 сентября 2018

Мы пытаемся создать две таблицы в БД с Kotlin.Мы попробовали несколько различных синтаксисов.Если мы закомментируем весь код, связанный со второй таблицей, первая таблица будет создана и содержит данные.Вот соответствующий код

class DBHelper(context: Context):SQLiteOpenHelper(context,DBHelper.DB_NAME,null,DBHelper.DB_VERSION) {

override fun onCreate(db: SQLiteDatabase?) {

    val CREATE_TABLE_DEPT = "CREATE TABLE ${DEPT_TABLE} ($colidD INTEGER PRIMARY KEY, $colDept TEXT);"
    val CREATE_TABLE_ITEM = "CREATE TABLE ${ITEM_TABLE} ($colidI INTEGER PRIMARY KEY, $colItem TEXT);"
    db!!.execSQL(CREATE_TABLE_DEPT + CREATE_TABLE_ITEM)
    //db!!.execSQL(CREATE_TABLE_ITEM)
}


override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
    val DROP_TABLE_DEPT = "DROP TABLE IF EXISTS $DEPT_TABLE"
    val DROP_TABLE_ITEM = "DROP TABLE IF EXISTS $ITEM_TABLE"
    db!!.execSQL(DROP_TABLE_DEPT + DROP_TABLE_ITEM)
    //db!!.execSQL(DROP_TABLE_ITEM)
    onCreate(db)
}

Сопутствующий объект

    companion object {
    private val DB_VERSION = 1
    private val DB_NAME = "Grocery.db"
    private val DEPT_TABLE = "Deptatment"
    private val colidD = "idD"
    private val colDept = "Dept"
    private val ITEM_TABLE = "GroceryItems"
    private val colidI = "idI"
    private val colItem = "Item"
}

Мы надеемся, что вопрос очевиден!Как создать в SQLite вторую таблицу с Kotlin?

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

Независимо от того, используете ли вы Android или kotlin.

Вы должны определить свой код, как показано ниже.

override fun onCreate(db: SQLiteDatabase?) {

    val CREATE_TABLE_DEPT = "CREATE TABLE ${DEPT_TABLE} ($colidD INTEGER PRIMARY KEY, $colDept TEXT);"
    val CREATE_TABLE_ITEM = "CREATE TABLE ${ITEM_TABLE} ($colidI INTEGER PRIMARY KEY, $colItem TEXT);"

    db!!.execSQL(CREATE_TABLE_DEPT)
    db!!.execSQL(CREATE_TABLE_ITEM)
}
0 голосов
/ 25 сентября 2018

Не объединяйте ваши запросы SQl.Вместо этого пишите запросы в разных утверждениях.Например,

override fun onCreate(db: SQLiteDatabase?) {

        val CREATE_TABLE_DEPT = "CREATE TABLE if not exists ${DEPT_TABLE} ($colidD INTEGER PRIMARY KEY, $colDept TEXT);"
        val CREATE_TABLE_ITEM = "CREATE TABLE if not exists ${ITEM_TABLE} ($colidI INTEGER PRIMARY KEY, $colItem TEXT);"
        db!!.execSQL(CREATE_TABLE_DEPT )
        db.execSQL(CREATE_TABLE_ITEM)
        //db!!.execSQL(CREATE_TABLE_ITEM)
    }
0 голосов
/ 25 сентября 2018

Ваш db!!.execSQL(CREATE_TABLE_DEPT + CREATE_TABLE_ITEM) был неправ.Попробуйте

db.execSQL(CREATE_TABLE_DEPT ); db.execSQL(CREATE_TABLE_ITEM);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...