0

次のことをしたい: データベース テーブルが既に存在するかどうかを確認したい。そうでない場合は、作成する必要があります (createEntry)。その 1 つのレコードが作成されたら、同じレコード (updateEntry) を新しい情報で更新し続けたいと思います (したがって、基本的に最初のレコードを新しい情報で上書きします)。

ブール値で現在抱えている問題は、データベースを作成することです (これは良いことです) が、別の QR コードを読み取ってレコードの情報を更新したい場合、2 番目のレコードに情報を書き込むだけです。基本的に、updateEntry の代わりに createEntry を実行し続けます。

ブール値の何が問題なのですか? 私はそれを見つけることができないようです。

private void insertQR(String doctorID, String doctorFullName, String patientID, String apiKey) {
    DatabaseHelper databaseHelper = new DatabaseHelper(this);
    databaseHelper.open();  
     boolean dbExist = checkDB();

    if (dbExist == true)
    {
        databaseHelper.createEntry(doctorID, doctorFullName, patientID, apiKey);
    }

    databaseHelper.updateEntry(0,doctorID, doctorFullName, patientID, apiKey); 
    databaseHelper.close();
}

private boolean checkDB() {
        SQLiteDatabase checkDB = null;
        try {
            checkDB = SQLiteDatabase.openDatabase("/data/data/rem.med.artesis/databases/qrreader.db", null,
                    SQLiteDatabase.OPEN_READONLY);
            checkDB.close();
        } catch (SQLiteException e) {
            // database doesn't exist yet.
        }
        return checkDB != null ? true : false;
    }


}
4

1 に答える 1

1
于 2012-05-15T18:31:19.823 に答える