【问题标题】:SQLite does not updateSQLite 不更新
【发布时间】:2015-10-29 21:20:22
【问题描述】:

我正在尝试更新条目的“完成”列的值。 COLUMN_DONE 保存一个整数。

public void markAsDone(int date_id, int t_id){
        SQLiteDatabase db = getWritableDatabase();
        String query = "UPDATE " + TABLE_DATES_T + " SET " + COLUMN_DONE + "= 1 WHERE date_id IS '" + date_id + "' AND t_id IS '" + t_id + "'";
        db.execSQL(query);
        db.close();
    }

但它不会更新此条目的值。我做错什么了???

【问题讨论】:

标签: java android sqlite updating


【解决方案1】:

也许你忘记了;在你的查询结束? 试试

String query = "UPDATE " + TABLE_DATES_T + " SET " + COLUMN_DONE + 
               "= 1 WHERE date_id IS '" + date_id + "' AND t_id IS '" + t_id + ";'";

【讨论】:

  • 可怕的想法。 ; 完全无用
  • 在 SQL 中它是强制性的,只要我记得,但我可能是错的
  • 你真的错了。在other数据库中,支持多条SQL命令在同一行,;用于分隔这些命令。
  • SQL 标准要求在每条语句的末尾使用分号。如果只有一条语句,大多数数据库(包括 SQLite)都将其设为可选。但无论如何,将分号放在 t_id 字符串中是错误的。
  • @CL 对于 Access 和 SQL Server,对于单个语句,它是完全可选的。无论如何,很好地发现分号在字符串分隔符内!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
相关资源
最近更新 更多