我想在sqlite中仅更新地址和电话。我该如何解决db.update?
我的KEY_ID始终为1,因为我只在数据库中有一行
public void updatecontact(String address, String phone){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ADDRESS, address);
values.put(KEY_PHONE, phone);
String userid="1";
return db.update(TABLE_LOGIN, values, KEY_ID "= userid", null);
}
我应该怎么做以纠正它inwhereClause和whereArgs?
返回db.update(TABLE_LOGIN,values,whereClause,whereArgs);
可以使用KEY_EMAIL = KEY_EMAIL吗?
答案 0 :(得分:2)
替换
return db.update(TABLE_LOGIN, values, KEY_ID "= userid", null);
类似
return db.update(TABLE_LOGIN, values, KEY_ID + "= ?", new String[] { userid });
使用+
连接字符串。
?
是文字的占位符,它们与whereArgs数组绑定。
userid
的SQL中的 'single quotes'
被视为标识符(列名)而不是字符串文字。因此,您会收到类似“no such column:userid”的错误。
此外,如果要从方法中返回值,请将方法签名中的void
更改为int
。