【发布时间】:2013-04-26 20:21:40
【问题描述】:
我有包含“日期”列和“项目”列的数据库。 我希望该用户可以更新数据库中的特定行。 我试图用 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);
}
【问题讨论】:
-
不能用SQL吗? UPDATE mytable SET date=A WHERE date=X and item=Y
-
我用什么方法放这个字符串?