Android 尝试更新记录时发生SQLite异常
我正在将用户名传递给updatePassword()方法,并尝试使用“test”更改该用户的密码 但这给了我一个例外: android.database.sqlite.SQLiteException:无此列:bvb(代码1): ,编译时:更新详细信息设置密码=?其中USERNAME=bvb bvb是我输入的用户名Android 尝试更新记录时发生SQLite异常,android,android-sqlite,Android,Android Sqlite,我正在将用户名传递给updatePassword()方法,并尝试使用“test”更改该用户的密码 但这给了我一个例外: android.database.sqlite.SQLiteException:无此列:bvb(代码1): ,编译时:更新详细信息设置密码=?其中USERNAME=bvb bvb是我输入的用户名 为什么会发生这种情况?使用引号调用update方法 //table details public static final String TABLE_NAME_Details="de
为什么会发生这种情况?使用引号调用update方法
//table details
public static final String TABLE_NAME_Details="details";
public static final String USERNAME="USERNAME";
public static final String PASSWORD="PASSWORD";
//update value
public boolean updatePassword(String LoggedUsername)
{
SQLiteDatabase db = null;
try {
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(PASSWORD, "test");
if (db.isOpen()) {
db.update(TABLE_NAME_Details, values, USERNAME + "=" + LoggedUsername,null);
return true;
}
else
return false;
} catch (Exception e) {
Log.d("eEmp/DBUpdateUser ", e.toString());
return false;
}
}
或者在方法内部更改此行
updatePassword("'bvb'");
当您传递
bvb
时,我没有得到@mustabelmow,您没有转义它,因此Sqlite将它视为sql请求中的一个变量,因此如果您转义它,它将被视为@mustabelMo答案之外的一个值,您在混合技术:半查询使用一个(未使用的)参数,它仍然存在?(因为您不传递参数),其余部分使用未转换的字符串。
db.update(TABLE_NAME_Details, values, USERNAME + "='" + LoggedUsername+"'",null);