我想使用以下功能更新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 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 ;
}
答案 0 :(得分:0)
像这样传递变量:
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});