更新查询在Android Sqlite中不起作用

时间:2014-06-02 07:08:42

标签: android sqlite android-sqlite

我的Java代码更新数据库表

String qq="UPDATE ChallanItems SET Recieve ="+str+" WHERE ItemNo = "+code;
                    Log.d("Qry", qq);
                     myDbHelper.updatequery(qq);

updatequery方法

public void updatequery(String qry)
    {
        Cursor c = myDataBase.rawQuery(qry, null);


        Log.d("Up", ""+c.getCount());
    }

当我更新数据库时,计数返回0并且表未更新

我正在使用这个但是没有工作

String qq="UPDATE ChallanItems SET Recieve ="+str+" WHERE ItemNo = "+"'"+code+"'";

请帮助我如何解决这个问题

提前致谢

3 个答案:

答案 0 :(得分:6)

对此类SQL使用execSQL()而不是rawQuery()

rawQuery()只编译SQL但不运行它。您需要在返回的move...()上调用其中一个Cursor方法来执行已编译的SQL程序的一个步骤。

execSQL()编译并运行SQL程序。

您的文字也可能存在语法问题 - 在SQL中使用参数即?占位符,并且String[]绑定参数是安全的。

答案 1 :(得分:1)

尝试使用它:

ContentValues values = new ContentValues();
values.put("Recieve", str);
db.update("ChallanItems", values2, "ItemNo = ?", new String[] { code });

答案 2 :(得分:1)

更新sqlite查询更改

 Cursor c = myDataBase.rawQuery(qry, null);

到这个

myDataBase.execSQL(qry);