我有类似的方法
private void addDataToDailyStatisticsIncome(String date, String money, int idUser){
Cursor res1 = db.getDataTableDailyStatistic(idUser);
int temp = 0;
int money1, money2;
res1.moveToFirst();
while (res1.moveToNext()) {
if (date.equals(res1.getString(1)) == true) {
temp = 1;
break;
} else {
temp = 0;
}
}
if(temp == 1){
money1 = Integer.parseInt(res1.getString(3));
money2 = Integer.parseInt(money);
money1 = money1 + money2;
long isUpdated = db.updateTableDailyStatistic(res1.getString(1), Integer.toString(money1), idUser, Integer.parseInt(res1.getString(0)));
} else{
long isInserted = db.insertTableDailyStatistic(date, money, idUser);
}
}
我想检查新数据何时插入应用。如果“date
”可用,我将在同一日期更新“money
”。
或者,如果“date
”不可用,我将使用Date
插入新的Money
。
但我有一个问题,它总是插入,它永远不会更新,虽然我在Date
中有相同的Database
。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
请按照以下步骤操作:
检查date
是否可用并获取money1
:
int money1 = 0;
boolean isAvailable = false;
String query = "select count(*) from TableName where date = ?";
Cursor cursor = db.rawQuery(query, new String[] {date});
if (cursor != null && cursor.moveToFirst()) {
isAvailable = true;
money1 = cursor.getInt(money1_column);
cursor.close();
}
插入或更新行:
if (isAvailable) {
// update
} else {
// insert
}
答案 1 :(得分:0)
您可以通过将日期声明为主键来完成此操作。在上面的方法中写入sql查询(插入和更新)。