我正在使用sqlite在我的android应用程序中维护数据库。其他操作工作正常,但Update Operation
无效。这是代码:
public int updateContact(Contact contact,String Type)
{
int a = 0;
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
values.put(KEY_TIME, contact.getTime());
values.put(KEY_ID , contact.getID());
if(Type == "name")
{
a = db.update(TABLE_CONTACTS, values, KEY_NAME + " = ?",
new String[] { String.valueOf(contact.getName()) });
}
else if(Type == "id")
// updating row
a = db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
else if(Type == "number")
// updating row
a= db.update(TABLE_CONTACTS, values, KEY_PH_NO + " = ?",
new String[] { String.valueOf(contact.getPhoneNumber()) });
else if(Type == "time")
a= db.update(TABLE_CONTACTS, values, KEY_TIME + " = ?",
new String[] { String.valueOf(contact.getTime())});
return a;
}
请帮帮我。
答案 0 :(得分:2)
String
比较始终应使用.equals()
代替==
if(Type == "name")
......
else if(Type == "number")
应改为
if("name".equals(Type))
......
else if("number".equals(Type))
答案 1 :(得分:1)
你为什么不用这种方式:
if(Type == "name")
{
a = db.update(TABLE_CONTACTS, values, KEY_NAME + "=" + String.valueOf(contact.getName()),null);
}
else if(Type == "id")
// updating row
a = db.update(TABLE_CONTACTS, values, KEY_ID + "=" + String.valueOf(contact.getID()),null);
else if(Type == "number")
// updating row
a= db.update(TABLE_CONTACTS, values, KEY_PH_NO + "=" + String.valueOf(contact.getPhoneNumber()),null);
else if(Type == "time")
a= db.update(TABLE_CONTACTS, values, KEY_TIME + "=" + String.valueOf(contact.getTime()),null);