我有两个完全相同的列表视图。我使用一个listview来更新包含的字符串。我使用下面的查询来更新数据库。
myDatabase.update(TABLE_WORKSITEFOLDER,contentValues,KEY_LOCALID +“=?”,new String [] {String.valueOf(increementedCurrentPosition)});
我的数据库已更新,但包含此字符串的listview(s)行未更新。这是通过更新列表适配器来实现的。如果是,那该怎么做?
答案 0 :(得分:2)
两个问题。
字符串文字需要引用单引号,这是由许多其他答案所解决的。但是,请考虑使用?
占位符和绑定参数。
使用execSQL()
而不是rawQuery()
这样的SQL。 rawQuery()
只编译SQL但不运行它。它仅在移动光标时运行。 execSQL()
编译并运行SQL。
示例:
myDatabase.execSQL("UPDATE " + TABLE_WORKFLOW + " SET " + KEY_NAME + " = ? WHERE " + KEY_LOCALID + " = ?",
new Object[] { updatedName, increementedCurrentPosition });
答案 1 :(得分:0)
试试这个。将更新字符串放在单引号中
UPDATE WorkFlow SET Name = '131568.0010 – EcoGreenWatch.org vs. Northern Plains Oil, Inc.12345' WHERE LocalId = 1
答案 2 :(得分:0)
数据库字段值为TEXT,需要添加' '
尝试代码:
myDatabase.rawQuery("UPDATE " + TABLE_WORKFLOW + " SET " + KEY_NAME + " = '" + updatedName + "' WHERE " + KEY_LOCALID + " = " + increementedCurrentPosition, null);
答案 3 :(得分:0)
我认为应该是:
myDatabase.rawQuery("UPDATE " + TABLE_WORKFLOW + " SET '" + KEY_NAME + "' = " + updatedName + " WHERE " + KEY_LOCALID + " = " + increementedCurrentPosition, null);
即。 KEY_NAME在单引号内,因为它是TEXT类型。