我有桌子(如图所示)。我想更新时间列。我有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();
}
显示异常.. 任何人都有助于解决这个问题......
答案 0 :(得分:1)
对于原始问题,您要求执行以下代码:
db.update(TABLENAME, values, MEDICINEID + " = ?",
new String[]{String.valueOf(medicineTime.getMedicine_id())});
出于某种原因,在Android上,将数值转换为字符串并使用它们进行选择args永远不会正常工作。见:Android Sqlite selection args[] with int values。最好的方法是:
db.update(TABLENAME, values, MEDICINEID + " = " + medicineTime.getMedicine_id(), null);