如何在数据库中更新其内容字符串时更新listview行?

时间:2015-01-09 05:58:59

标签: android android-sqlite updatemodel

我有两个完全相同的列表视图。我使用一个listview来更新包含的字符串。我使用下面的查询来更新数据库。

myDatabase.update(TABLE_WORKSITEFOLDER,contentValues,KEY_LOCALID +“=?”,new String [] {String.valueOf(increementedCurrentPosition)});

我的数据库已更新,但包含此字符串的listview(s)行未更新。这是通过更新列表适配器来实现的。如果是,那该怎么做?

4 个答案:

答案 0 :(得分:2)

两个问题。

  1. 字符串文字需要引用单引号,这是由许多其他答案所解决的。但是,请考虑使用?占位符和绑定参数。

  2. 使用execSQL()而不是rawQuery()这样的SQL。 rawQuery()只编译SQL但不运行它。它仅在移动光标时运行。 execSQL()编译并运行SQL。

  3. 示例:

    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类型。