【问题标题】:how to update a varchar in the sqlite database in java如何在java中更新sqlite数据库中的varchar
【发布时间】:2013-04-10 18:23:03
【问题描述】:

我在用 java 更新 sqlite 数据库中的 varchar 时遇到问题。 当我运行这个源时,我得到一个错误。 我希望字符串 a 更新为字符串 b。

这是我的来源:

public void onClick (View v){
String a = "Test1";
String b = "Test2";

    db = openOrCreateDatabase("MyDB", MODE_PRIVATE, null); 
                 ContentValues values = new ContentValues();
                 values.put("Level1", b);
                     db.update("Game", values, a, null);
                 db.close();
}

这是我的错误:

Error updating Level1=Test2 using update Game SET Level1=? WHERE Test1.

有人可以帮助我吗? 谢谢!

【问题讨论】:

    标签: java database sqlite sql-update


    【解决方案1】:

    我不能 100% 确定您要达到的目标,但是,您添加了 a 作为 where 子句并且没有提供任何参数,因此您得到了错误中显示的 SQL 语句。

    来自API

    public int update (String table, ContentValues values, 
                       String whereClause, String[] whereArgs)
    

    这个工作...

    db = openOrCreateDatabase("MyDB", MODE_PRIVATE, null); 
    ContentValues values = new ContentValues();
    values.put("Level1", b);
    db.update("Game", values, "Level1=?", new String[] {a} );
    db.close();
    

    ...如果这是您要执行的结果 SQL:

    update Game SET Level1=? WHERE Level1 = 'Test1'
    

    【讨论】:

    • 当我设置 String[] {a} 时,我无法运行我的应用程序。因为它是红色下划线的。你为什么使用“Level1=?”,你的意思是什么?
    • 非常感谢!有用。但是你能解释一下,你为什么用“Level1=?”,因为我不明白。
    • 我构建的语句只会更新那些行,其中列Level1 等于a 的值。如果你想更新表中的所有行,你可以使用db.update("Game", values, null, null);? 是一个绑定变量,对于您在 where 子句中提供的任何 ?,您需要数组中的字符串值。
    【解决方案2】:

    update Game SET Level1=? WHERE Test1.

    Test1 在哪里……什么?更新语句的条件部分在哪里。它期待类似的东西:

    update Game SET Level1=? WHERE ColumnName='Test1'


    取自this网站:

    If the UPDATE statement does not have a WHERE clause, all rows in the table are modified by the UPDATE. Otherwise, the UPDATE affects only those rows for which the result of evaluating the WHERE clause expression as a boolean expression is true.

    String 本身绝不是布尔表达式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多