2015-02-11 42 views
0

我想只更新地址和手机在sqlite中。我如何解决db.update?android基本sqlite更新声明错误

我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?

return db.update(TABLE_LOGIN,values,whereClause,whereArgs);

是否可以使用KEY_EMAIL = KEY_EMAIL?

回答

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'被视为标识符(列名)而不是字符串文字。因此你会得到一个像“没有这样的列:userid”的错误。

此外,如果要从方法返回值,请将方法签名中的void更改为int

+0

但在这行有这个'多个标记问题 \t - 太虚方法不能返回值 \t - 令牌“” =“”语法错误,删除 \t这token' – nic 2015-02-11 09:20:07

+0

谢谢兄弟感谢帮助新手这里 :) – nic 2015-02-11 09:27:00