Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android kotlin sqlite创建两个表_Android_Sqlite_Kotlin - Fatal编程技术网

Android kotlin sqlite创建两个表

Android kotlin sqlite创建两个表,android,sqlite,kotlin,Android,Sqlite,Kotlin,我们正在尝试使用Kotlin在DB中创建两个表。我们尝试了多种不同的语法。如果我们注释掉与第二个表相关联的所有代码,那么将创建第一个表并保存数据。这是相关代码 class DBHelper(context: Context):SQLiteOpenHelper(context,DBHelper.DB_NAME,null,DBHelper.DB_VERSION) { override fun onCreate(db: SQLiteDatabase?) { val CREATE_TABLE

我们正在尝试使用Kotlin在DB中创建两个表。我们尝试了多种不同的语法。如果我们注释掉与第二个表相关联的所有代码,那么将创建第一个表并保存数据。这是相关代码

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"
}
我们希望问题是显而易见的!如何使用Kotlin在sqlite中创建第二个表?

您的数据库!!。execSQLCREATE\ U TABLE\ U DEPT+CREATE\ U TABLE\ U项目错误。 试一试

你的db!!。execSQLCREATE\ U TABLE\ U DEPT+CREATE\ U TABLE\ U项目错误。 试一试


无论您使用的是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)
}

无论您使用的是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)
}

不要连接SQl查询。而是在不同的语句中编写查询。对于eg

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

不要连接SQl查询。而是在不同的语句中编写查询。对于eg

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

@VirRajpurohit工作得很好,我们知道+符号对其他人来说是一个延伸的注释如果你试图用db浏览器打开db文件,你需要用db或db浏览器放置db wal和db shu文件,告诉你什么也不知道这两个文件来自哪里?Thanks@VirRajpurohit工作得很好我们知道+符号对其他人来说是一个很长的注释如果你试图用db浏览器打开db文件,你需要用db或db浏览器放置db wal和db shu文件,告诉你什么都不知道这两个文件来自哪里?谢谢我们这样做了问题是我们不需要添加db wal和db shu文件来查看db浏览器的db谢谢回答我们这样做了问题是我们不需要添加db wal和db shu文件来查看db浏览器的db谢谢回答