次のことをしたい: データベース テーブルが既に存在するかどうかを確認したい。そうでない場合は、作成する必要があります (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;
}
}