Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 尝试更新记录时发生SQLite异常_Android_Android Sqlite - Fatal编程技术网

Android 尝试更新记录时发生SQLite异常

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

我正在将用户名传递给updatePassword()方法,并尝试使用“test”更改该用户的密码

但这给了我一个例外:

android.database.sqlite.SQLiteException:无此列:bvb(代码1): ,编译时:更新详细信息设置密码=?其中USERNAME=bvb

bvb是我输入的用户名


为什么会发生这种情况?

使用引号调用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);