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饼干
答案 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"});