String TABLE_NAME = "WORD";
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME +
"(WORD TEXT, DEFINITION TEXT, DAY TEXT)");
//find out if we have entered data already
ContentValues cv = new ContentValues();
cv.put("WORD", "nuttin");
cv.put("DEFINITION", "nuttin");
cv.put("DAY", "nuttin");
db.insert("WORD", null, cv );
ContentValues cvUpdates = new ContentValues();
cvUpdates.put("WORD", " ");
cvUpdates.put("DEFINITION", " ");
cvUpdates.put("DAY", " ");
db.update("WORD", cvUpdates, null, null);
}
为什么我要继续
sqlite> select * from word;
||
在这一个人的头上靠在墙上......
答案 0 :(得分:0)
您正在构建用于创建表的SQL字符串存在问题:
"CREATE TABLE " + TABLE_NAME + "(WORD TEXT, DEFINITION TEXT, DAY TEXT)"
这将创建:
CREATE TABLE WORD(WORD TEXT, DEFINITION TEXT, DAY TEXT)
您可以看到它在表名和字段(... WORD( ...
)之间缺少空格。
如果您查看了LogCat输出,您可能会注意到execSQL()
- 方法抛出SQLException
,告诉您SQL-String无效。你应该总是抓住那些例外!
仅为了完整性:SQLException
- 类扩展RuntimeException
,这是一个未经检查的例外。有关详细信息,请访问here。
答案 1 :(得分:0)
实际上是因为,几乎是在创建数据库之后,我正在使用空HashMap向其中插入一些值,而不是使用我的方法返回来填充HashMap(实际上有效..我只是忘了使用它)Doh!谢谢你们。