0

restartButton を押した後、データベースをデフォルトの状態にリセットしようとしています。私の問題は、restartButton を押した後、新しく追加されたデータを取得できないようです。ここで何が間違っていますか?

restartButton コード:

private void easySQLRestart() {
        sql = new SQLDatabaseLevelOne(MainActivity.this);
        sql.open();
        sql.restart();
        sql.close();
    }

再起動のコード:

public void restart() {
        sqlDatabase = dbHelper.getWritableDatabase();
        sqlDatabase.delete(DATABASE_TABLE, null, null);
    }

これは、リセット後に新しいデータを追加する部分です。

public void updateScore(int score) {
                String strScore;

                if (score == 0) {
                    score = 1;
                } else if (score > 0) {
                    strScore = getScore();

                    if (strScore.equals("")) {
                        score = 1;
                    } else {
                        strScore = getScore();
                        int value = Integer.parseInt(strScore);
                        score += value;
                    }
                }

                ContentValues dbContentValues = new ContentValues();
                dbContentValues.put(KEY_SCORE, score);
                sqlDatabase.update(DATABASE_TABLE, dbContentValues, KEY_ID + "=" + 1,
                        null);
            }

これは、データを取得するためのコードです。

    public String getScore() {
        String[] data = new String[] { KEY_ID, KEY_SCORE };
        Cursor dbCursor = sqlDatabase.query(DATABASE_TABLE, data, null, null,
                null, null, null);
        String dbResult = "";

        int dbQuestionStatus = dbCursor.getColumnIndex(KEY_SCORE);

        for (dbCursor.moveToFirst(); !dbCursor.isAfterLast(); dbCursor
                .moveToNext()) {
            dbResult += dbCursor.getString(dbQuestionStatus);
        }

        return dbResult;
    }

こんな感じでデータ追加。例外をスローしません:

sql = new SQLDatabaseLevelOne(
                                                EasyRoundActivity.this);
sql.open();
try {
                                            sql.updateScore(0);
                                            }catch(Exception e) {
                                                Context context = getApplicationContext();
                                                int duration = Toast.LENGTH_SHORT;
                                                Toast.makeText(context, "ERROR", duration).show();
                                        }
4

1 に答える 1

0

SQLiteDatabase.update()既存のレコードを更新します。新しいものを挿入するには、呼び出す必要がありますSQLiteDatabase.inset()

于 2013-02-26T16:02:03.043 に答える