我正在尝试在首次创建数据库时将行插入数据库。
@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' );" );
}
如果我没有插入调用,那么数据库就可以正常创建,我可以添加它,查看它等等。但是,出于某种原因,当我尝试将调用数据插入到create时,我得到了一个错误“没有这样的表”。
我尝试将插入调用放入一个名为Populate的单独方法中,并在我的主活动中调用它,但这也会产生错误。
不确定我做错了什么。任何帮助将不胜感激。
答案 0 :(得分:1)
不使用命名表的字符串(由DATABASE_TABLE
字符串变量表示)而是直接使用字符串"DATABASE_TABLE"
(这对于数据库没有任何意义,因为您没有表{ {1}})。像这样更新插入调用:
DATABASE_TABLE
和其他插入调用一样(看你如何声明创建sql String)。
进行此修改后,请卸载您的应用并重新安装,以便db.execSQL("INSERT INTO " + DATABASE_TABLE + "(" + KEY_REPS +", " + KEY_ABS + ") VALUES ('25', 'Reverse Crunches' );" );
看到更改。