我有包含“日期”列和“项目”列的数据库。我希望该用户可以更新数据库中的特定行。我试图用 SQLiteDatabase 类中的更新方法来做到这一点。我的问题是我不知道如何让更新方法准确找到我想要的行。我看到了一些将它与一个单词的参数一起使用的示例。像这样:
ourDatabase.update(tableName, cvUpdate, rowId + "=" + item , null);
我的问题是我想更新具有特定项目和日期的行。因此,仅项目名称是不够的。我在下面尝试了此代码,但它没有工作,希望你能帮助我。
public void updateEntry(String item, String date) throws SQLException{
String[] columns = new String[]{myItem, myDate};
Cursor c = ourDatabase.query(tableName, columns, null, null, null, null, null);
long position;
ContentValues cvUpdate = new ContentValues();
cvUpdate.put(date, myDate);
cvUpdate.put(item, myExercise);
int itemAll = c.getColumnIndex(myItem);
int dateAll = c.getColumnIndex(myDate);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
if (c.getString(itemAll).equals(myItem) && c.getString(dateAll).equals(myDate))
{
position = c.getPosition();
break;
}
}
ourDatabase.update(tableName, cvUpdate, rowId + "=" + position , null);
}