android基本的sqlite更新语句错误

时间:2015-02-11 09:15:23

标签: android sqlite

我想在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吗?

1 个答案:

答案 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