0

我试图在首次创建数据库时将行插入数据库。

@Override
    public void onCreate(SQLiteDatabase db) {
        // Only uses this method when the database is first created.
        //Sets up the database - telling it the table name and all
        //the column names.
        db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
                KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                KEY_REPS + " TEXT NOT NULL, " +
                KEY_ABS + " TEXT NOT NULL);"    
        );

        db.execSQL("INSERT INTO DATABASE_TABLE(KEY_REPS, KEY_ABS) VALUES ('25', 'Reverse Crunches' );" );
        db.execSQL("INSERT INTO DATABASE_TABLE(KEY_REPS, KEY_ABS) VALUES ('25', 'Crunches' );" );
        db.execSQL("INSERT INTO DATABASE_TABLE(KEY_REPS, KEY_ABS) VALUES ('1 minutes', 'Plank' );" );
        db.execSQL("INSERT INTO DATABASE_TABLE(KEY_REPS, KEY_ABS) VALUES ('30', 'Toe Touches' );" );
        db.execSQL("INSERT INTO DATABASE_TABLE(KEY_REPS, KEY_ABS) VALUES ('50', 'Russian Twists' );" );

    }

如果我在那里没有插入调用,数据库创建得很好,我可以添加它,查看它等等。但是,由于某种原因,当我尝试在创建时调用插入数据时,我得到一个错误“不这样的表”。

我尝试将插入调用放入一个名为 Populate 的单独方法中,并在我的主要活动中调用它,但这也会产生错误。

不知道我做错了什么。任何帮助将不胜感激。

4

1 回答 1

1

而不是使用命名表的字符串(由DATABASE_TABLEString 变量表示) ,而是"DATABASE_TABLE"直接使用字符串(这对数据库没有任何意义,因为您没有表DATABASE_TABLE)。像这样更新您的插入调用:

db.execSQL("INSERT INTO " + DATABASE_TABLE + "(" + KEY_REPS +", " + KEY_ABS + ") VALUES ('25', 'Reverse Crunches' );" );

对于其他插入调用也是如此(看看您如何声明创建 sql 字符串)。进行此修改后,卸载您的应用并重新安装,以便SQLiteOpenHelper.

于 2012-06-02T14:45:17.990 回答