android更新数据库错误

时间:2014-02-28 13:21:52

标签: android database sqlite sql-update

我正在尝试将数据库false中的值更新为true;

这是我的代码

public void updatecheck( int id){
     mDb = mDbHelper.getWritableDatabase();

       ContentValues newValues = new ContentValues();
       newValues.put("check", true);
       mDb.update(channel, newValues, "id"+" = ?", new String [] {String.valueOf(id)}); 

}

但我接受了这个错误,

  

02-28 15:15:37.515:E / AndroidRuntime(5539):   android.database.sqlite.SQLiteException:near“check”:语法错误   (代码1):,编译时:UPDATE Genelkultur2012 SET check =?哪里   id =?

解决:

新代码

 ContentValues newValues = new ContentValues();
         newValues.put("tamam", true);
         mDb.update(channel, newValues, "id"+" = ?", new String [] {String.valueOf(id)}); 

2 个答案:

答案 0 :(得分:3)

CHECK是SQL中的保留关键字。重命名列或在反引号中引用它。

答案 1 :(得分:1)

newValues.put("check", true);

您尝试存储 true ,这是一种布尔数据类型,SQLite不支持。您必须将它们存储在以下类型之一中:

  1. NULL 即可。该值为NULL值。
  2. INTEGER 即可。该值是有符号整数,存储为1,2,3,4,6或8个字节,具体取决于值的大小。
  3. REAL 即可。该值是浮点值,存储为8字节IEEE浮点数。
  4. 文字即可。该值是一个文本字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)存储。
  5. BLOB 即可。该值是一个数据块,完全按照输入的方式存储。
  6. 我建议将布尔成员存储为0或1.更多信息:http://www.sqlite.org/datatype3.html