在SQLite中更新联系人的难度

时间:2012-10-16 15:23:38

标签: android sqlite

我正在使用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;
    }

请帮帮我。

2 个答案:

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