2

在此处输入图像描述

我有桌子(如图所示)。我想更新时间列。我有medicine_id(second column)如何更新不同的时间取决于相同的medicine_id(second column)

另外,当我更新时间时,我的数据库中有四行,它应该是两行意味着,我想用特定的medicine_id..删除另外两行

我有以下更新代码:

if(mon) {
   for (int i = 0; i < dosage_per_day; i++) {
        mMedicineDbHelper.updateMedicines(new 
                             MedicineTime(row_id, time_InMillies[i]));
   }
} 

我的数据库代码:

public void updateMedicines(MedicineTime medicineTime) {

    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(ID, medicineTime.getId());
    values.put(MEDICINEID, medicineTime.getMedicine_id());
    values.put(TIME, medicineTime.getTime_in_millis());
    db.update(TABLENAME, values, MEDICINEID + " = ?", 
              new String[]{String.valueOf(medicineTime.getMedicine_id())});
    db.close();

}

它显示异常......任何人都可以帮助解决这个问题......

4

1 回答 1

1

对于最初提出的问题,您正在执行以下代码:

db.update(TABLENAME, values, MEDICINEID + " = ?", 
          new String[]{String.valueOf(medicineTime.getMedicine_id())});

出于某种原因,在 Android 上,将数值转换为字符串并将它们用于选择参数永远无法正常工作。请参阅:Android Sqlite selection args[] with int values。执行此操作的最佳方法如下:

db.update(TABLENAME, values, MEDICINEID + " = " + medicineTime.getMedicine_id(), null);
于 2014-01-07T23:36:09.460 回答