在我的项目中,我使用此查询更新数据库中的搜索标签
public void updatesearchtag(){
SQLiteDBHelper sqLiteDBHelper = new SQLiteDBHelper(context.getApplicationContext());
Cursor crs=sqLiteDBHelper.getWritableDatabase().rawQuery("update shoply_coupon set searchTag=(Select SearchTag from shoply_retailer_master where retailerId=shoply_coupon.retailerID)",null);
//Cursor crs=sqLiteDBHelper.getWritableDatabase().execSQL("update shoply_coupon set searchTag=(Select SearchTag from shoply_retailer_master where retailerId=shoply_coupon.retailerID)");
}
但是查询不起作用我可能知道我在这里做了什么错误
答案 0 :(得分:1)
使用execSQL()
而不是rawQuery()
这样的SQL。
rawQuery()
只编译SQL但不运行它。它仅在移动光标时运行。 execSQL()
编译并运行SQL。
此外,请使用getWritableDatabase()
而不是getReadableDatabase()
进行更新。
答案 1 :(得分:0)
分享您正在使用的代码进行更新。还有关于SearchTag值。
我建议在代码中使用Dbclass分隔并使用这样的函数。这是一个简单的方法来做所有事情,如更新,删除,选择等
public boolean Update(String SearchTag , ContentValues values)
{
if (db.update(TABLE, values, "SearchTag = '"+YourValue+"'", null) > 0)
{
return true ;
}
return false ;
}
答案 2 :(得分:0)
使用
sqLiteDBHelper.getWritableDatabase()
代替
sqLiteDBHelper.getReadableDatabase()
因为您正在尝试写入处于写入防止模式的数据库。