尝试更新记录时SQLite异常

时间:2017-11-29 12:11:29

标签: android android-sqlite

//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()方法并尝试使用" test"更改该用户的密码。

但它给了我例外:

  

android.database.sqlite.SQLiteException:没有这样的列:bvb(代码1):   ,编译时:UPDATE详细信息SET PASSWORD =?在哪里USERNAME = bvb

bvb是我输入的用户名。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

使用引号

调用update方法
 updatePassword("'bvb'");

或在方法

中更改此行
 db.update(TABLE_NAME_Details, values, USERNAME + "='" + LoggedUsername+"'",null);