1

行 ID を where ステートメントとして使用して SQLite テーブルを更新しようとしています。リストビューに表示されている行から行 _id を取得し、次のステートメントで別のアクティビティに渡しています。

Cursor cursor = (Cursor) nurseTableAdapter.getItem((int)id);
            showAssignments.putExtra("Nurse", cursor.getInt(cursor.getColumnIndex("_id")));

受信アクティビティは次のパラメーターを受け取ります。

nurse = extras.getString("Nurse");

それをパラメーターとして DbCommunicator クラスに渡します。

updateAssignments.updateNurseAssignments(listItemsArray, nurse);

そして私の DbCommunicator クラスはそれでこれを行います:

public void updateNurseAssignments(String[] choices, String nurseId) {
    // set parameter variables
    //int nurseIdToInt = Integer.parseInt(nurseId);
    //String strFilter = "_id=" + nurseIdToInt;
    //String where = "_id=?";
    String[] whereArgs = {String.valueOf(nurseId)};
    Log.i(TAG, "value of whereArgs is " + whereArgs[0]);

    // set content values
    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_FIRST_ASSIGNMENT, choices[0]);
    cvUpdate.put(KEY_SECOND_ASSIGNMENT, choices[1]);
    cvUpdate.put(KEY_THIRD_ASSIGNMENT, choices[2]);
    cvUpdate.put(KEY_FOURTH_ASSIGNMENT, choices[3]);
    cvUpdate.put(KEY_FIFTH_ASSIGNMENT, choices[4]);
    cvUpdate.put(KEY_SIXTH_ASSIGNMENT,  choices[5]);

    // update database
    sqldb.update(NURSE_TABLE, cvUpdate, KEY_NURSE_ROWID + "= ?", whereArgs); 
}

エラーは発生していませんが、テーブルが更新されていません。Stack Overflow で同様の例を 1 つだけ見つけました。その一部をここに組み込もうとしましたが、まだ問題があります。提案をいただければ幸いです。

4

0 に答える 0