MainActivityでデータベースを作成しましたが、そのデータベースをEditActivityで削除または更新する方法を以下に示します。AndroidでSQLiteDatabaseを使用して削除または更新する方法
private void deleteNote() {
SQLiteDatabase db;
db = openOrCreateDatabase("note.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
db.execSQL("CREATE TABLE IF NOT EXISTS note("
+ "idx INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "name TEXT,"
+ "date TEXT,"
+ "taste TEXT,"
+ "rating FLOAT" + ");");
db.execSQL("DELETE FROM note WHERE idx = " + positionInt + ";");
Toast.makeText(EditActivity.this, "Delete Success", Toast.LENGTH_SHORT).show();
db.close();
}
上記は私のコードの削除ですが、正しく動作しないようです。トーストメッセージ(「削除成功」)が表示されますが、DBにはまだ削除されたデータがあります。
私の質問には次のようなものがあります:1)コードに間違った部分がありますか? 2)仮想デバイスを使用せずに、Androidモニターでデータが削除されたかどうかを確認する方法はありますか?
多くの感謝!いくつかの教祖が私を助けてくれることを願っています!
もちろん、無条件で実行されるので、トーストが表示されます。おそらく 'idx =" + positionInt'というレコードはありません。ListView(または他のリスト/グリッド形式のビュー)とテーブル行IDの位置は**同じものではありません。ところで、SQLクエリやコマンドの最後の '; 'は**完全に役に立たない**(文字列の連結は時間のかかる操作です) –
私はMainActivityのListViewから位置番号を取得していました。私が作業しているEditActivityで定義しました。 'Int positionInt = getIntent()。getIntExtra(" position "、positionInt);'セミコロンを知ってくれてありがとうございます! –
'MainActivityのListViewから位置番号を取得しましたそして、私が働いているEditActivityで定義しました。正確に私が理解したところです。そして、私が言ったように、ListView内の位置は**テーブルの行IDと**何も関係ありません** –