2013-05-05 3 views
0

Я пытаюсь обновить значение пароля в базе данных sql в моей программе Android. КодПочему база данных sql не может быть обновлена ​​в android?

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; 
    } 

Но пароль никогда не был обновлен. Что может быть неправильным? Благодаря

ответ

0

Я думаю, что вы хотите изменить mCursor.getColumnIndex(KEY_ROWID); к mCursor.getLong(mCursor.getColumnIndex(KEY_ROWID));

getColumnIndex не возвращает значение столбца, а возвращает индекс столбца.

+0

спасибо, человек, это правильно. – Bryanyan