SQLite3 db Android插入空值

时间:2011-09-15 06:11:15

标签: java android sqlite

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;
||

在这一个人的头上靠在墙上......

2 个答案:

答案 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!谢谢你们。