0

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

请帮我。

4

2 回答 2

2

String比较总是应该使用.equals()而不是==

if(Type == "name")
......
else if(Type == "number")

应该改为

    if("name".equals(Type))
  ......
   else if("number".equals(Type))
于 2012-10-16T15:24:27.667 回答
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);
于 2012-10-16T15:30:29.940 回答