SQLite Android Update语句不更改新列值

时间:2020-05-18 17:06:00

标签: android sqlite

sQLdB = openDb(sQLdB);

    sQLdB.rawQuery("UPDATE item_support_table SET groupname ='NANO' WHERE groupcode = 5",null ); 

    closedb(sQLdB);

更新查询无法正常工作,不会引发任何错误.groupcode ='5'/ groupcode = 5的行不会使用新值NANO更新,而columnName groupname是新名称NANO。插入,选择,删除所有工作正常,为什么会发生任何错误

rowid组代码组名 1 1蔬菜 2 2杂货 5 5饼干

2 个答案:

答案 0 :(得分:0)

对于不返回数据的查询,请使用execSQL()而不是rawQuery()

rawQuery()仅编译SQL,但直到返回的moveTo..()调用Cursor方法之一后才执行。 execSQL()编译并运行SQL。

答案 1 :(得分:0)

在执行返回表中行的rawQuery()语句时,应使用SELECT
如果要更新行,建议的方法是使用update()子句的参数的ContenetValues?占位符的方法WHERE

ContentValues c = new ContentValues();
c.put("groupname", "NANO");
sQLdB.update("item_support_table", c, "groupcode = ?", new String[] {"5"});