为什么sql数据库无法在android中更新?

时间:2013-05-05 15:02:17

标签: android

我正在尝试在我的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;
     }

但密码从未更新过。 可能有什么不对? 感谢

1 个答案:

答案 0 :(得分:0)

我认为您想要将mCursor.getColumnIndex(KEY_ROWID);更改为 mCursor.getLong(mCursor.getColumnIndex(KEY_ROWID));

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