如何在SQLite中使用where子句进行更新查询?

时间:2012-01-21 10:30:02

标签: android

  

可能重复:
  update sql database with ContentValues and the update-method

我正在使用此代码,但我想根据我的ID更新它。

public void updateforgotpassword(String data) {
        // TODO Auto-generated method stub

        ContentValues forgotpass = new ContentValues();
        forgotpass.put("password", data);

        try {
            db.update(TABLE_NAME, forgotpass, null, null);
        }
        catch (Exception e)
        {
            String error = e.getMessage().toString();
        }

    }

我该怎么做?

4 个答案:

答案 0 :(得分:2)

假设行的ID存储在变量id中并假设列名是_id(这是标准的),您可以像这样更新

final String[] whereArgs = { Long.toString(id) };
db.update(TABLE_NAME, forgotpass, "_id = ?", whereArgs);

答案 1 :(得分:1)

您始终可以使用可以触发普通SQL查询的rawquery方法。

或者,您可以使用SQlite提供的“更新”方法,其中提供两个数组,一个用于“whereargs”,一个用于“wherevalue”

使用

rowQuery方法中的

"update [your table] set [your column]=value" ...

或,

db.update(TABLE_NAME, forgotpass, "KEY_ID = ?", whereArgs);

答案 2 :(得分:0)

您可以选择提供where子句。

db.update(TABLE_NAME,forgotpass,“ID =?”,new String [] {paramUserID});

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#update(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[])

答案 3 :(得分:0)

        public boolean updateAccountData(AccountModel account) {

            boolean updated = false;
            openDataBase();
            try {
                final ContentValues values = new ContentValues();

                values.put("AccountName", account.getAccountName());
                values.put("Lessee", account.getLessee());
                values.put("BookingRedeliveryNumber", account
                        .getBookingRedeliveryNumber());
                values.put("SurveyorName", account.getSurveyorName());
                values.put("ManufacturerName", account.getManufacturerName());
                values.put("State", account.getState());            
                values.put("TurnInMonth", account.getTurnInMonth());
                values.put("TurnInYear", account.getTurnInYear());
                values.put("CscMonth", account.getCscMonth());
                values.put("CscYear", account.getCscYear());

                myDataBase.update(ACCOUNT_MST, values, "AccountID = "
                        + account.getAccountID(), null);
                updated = true;
    }
return updated;
    }