【问题标题】:android update database errorandroid更新数据库错误
【发布时间】:2014-02-28 13:21:51
【问题描述】:

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

这是我的代码

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:靠近“检查”:语法错误 (代码 1):,编译时:UPDATE Genelkultur2012 SET check=?在哪里 id = ?

已解决:

新代码

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

【问题讨论】:

    标签: android database sqlite sql-update


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      newValues.put("check", true);

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

      1. 。该值为 NULL 值。
      2. 整数。该值是一个有符号整数,根据值的大小存储在 1、2、3、4、6 或 8 个字节中。
      3. 真实。该值是一个浮点值,存储为一个 8 字节的 IEEE 浮点数。
      4. 文本。该值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
      5. BLOB。该值是一团数据,完全按照输入的方式存储。

      我建议将布尔成员存储为 0 或 1。更多信息在这里:http://www.sqlite.org/datatype3.html

      【讨论】:

      • 看起来很正常。 “真”没有问题
      • 实际上你是对的,因为布尔值会产生一些问题。我已将布尔值更改为 0,1,但作为文本
      • 那么布尔数据类型确实引起了问题?哦,什么类型的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-20
      • 2018-06-15
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      相关资源
      最近更新 更多