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 に答える