0

我正在尝试在我的 android 程序中更新 sql 数据库中的密码值。代码是

mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
public boolean updatepasswordbySimcardnumber(String simcard, String password) {          
         Cursor mCursor = null;
         int retvalue = 0;
         mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
                   KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE, KEY_PASSWORD}, 
                   null, null, null, null, null);
         for(mCursor.moveToFirst(); !mCursor.isAfterLast(); mCursor.moveToNext()){
             if(mCursor.getString(2).equals(simcard)){
                   ContentValues updatevalue = new ContentValues();          
                   updatevalue.put(KEY_PASSWORD, password);             
                   long colId = mCursor.getColumnIndex(KEY_ROWID);
                   retvalue =  mDb.update(SQLITE_TABLE, updatevalue, KEY_ROWID + "=" + colId, null);
                   break;
             }
         }
                 mDbHelper.close();
         return retvalue > 0;
     }

但密码从未更新过。有什么问题?谢谢

4

1 回答 1

0

mCursor.getColumnIndex(KEY_ROWID);我想你想 改成mCursor.getLong(mCursor.getColumnIndex(KEY_ROWID));

getColumnIndex 不返回列的值,而是返回列的索引。

于 2013-05-05T15:07:07.207 回答