0
我被一个逻辑问题困住了。我有一个SQLite表的字段id,markerID(字符串)和分数(整数)。如果不存在,添加数据库条目
现在我想看看是否已经有某个标记ID的条目,如果不添加分数。如果存储的分数小于5,我不想做任何事情,如果没有,我想更新特定条目的分数。
现在我有问题,光标经过的所有条目,并添加一个条目,如果已经有与其他markerID一个条目,即使与目前markerID就应该什么都不做。因此,它为所有条目运行方法,并且对当前的标识ID不做任何处理,但为每个条目添加了一个Score与另一个标识ID。
我怎样才能做到我想要的?
if (cursor.moveToFirst()) {
do {
Log.d("Database", "Inhalt: "+cursor.getString(0) + cursor.getString(1));
if (Integer.parseInt(cursor.getString(0)) < 5 && cursor.getString(1).equals(markerID)) {
Log.d("Database", "Update");
dbh.updateScore(dbh, Integer.parseInt(cursor.getString(0)), markerID, score);
finish();
}
else if (Integer.parseInt(cursor.getString(0))== 5 &&cursor.getString(1).equals(markerID)) {
Log.d("Database", "Nothing");
finish();
}
else if (!cursor.getString(1).equals(markerID)){
Log.d("Database", "Add Score");
dbh.addScore(dbh, score, markerID);
finish();
}
}
while (cursor.moveToNext());
}
else {
Log.d("Database", "Add Score");
dbh.addScore(dbh, score, markerID);
finish();
}
cursor.close();
下面是从数据库中getScore
方法:
public Cursor getScore(DbHelper dbh) {
dbase = dbh.getReadableDatabase();
String columns[] = {COLUMN_SCORE, COLUMN_MARKERID};
Cursor cursor = dbase.query(SCORE_TABLE, columns, null, null, null, null, null);
return cursor;
}