在android studio中的update execSQL语句中使用变量
我想用如下函数更新sqlite数据库表在android studio中的update execSQL语句中使用变量,android,Android,我想用如下函数更新sqlite数据库表 execSQL在我直接使用1时起作用,但在使用变量dep时不起作用 public void update(long id,int dep) { Log.i("ee","havu entered in update"); db.beginTransaction(); db.execSQL("UPDATE deci set dp = dep WHERE _id = 1"); //db.execSQL("UPDATE deci
execSQL
在我直接使用1时起作用,但在使用变量dep时不起作用
public void update(long id,int dep) {
Log.i("ee","havu entered in update");
db.beginTransaction();
db.execSQL("UPDATE deci set dp = dep WHERE _id = 1");
//db.execSQL("UPDATE deci set dp = 1 WHERE _id = 1");
db.setTransactionSuccessful();
db.endTransaction();
db.close();
/*ContentValues contentValues = new ContentValues();
contentValues.put(dp, dep);
int i = db.update(deci, contentValues );*/
return ;
}
按如下方式传递变量:
db.execSQL("UPDATE deci set dp = " + dep + " WHERE _id = " + id );
在您的代码中,我看到使用ContentValues
的注释语句 这始终是一种更好、更安全的方法:
ContentValues cv = new ContentValues();
cv.put("dp", dep);
db.update(deci , cv, "_id = ?", new String[]{id});