SQLiteデータベース内の特定の列を削除したいです。db.deleteは指定された行の代わりに最初の行を削除します
私はwhereClause
として列のIDを渡そうとしましたが、whereClause
に文字列値が必要であるというエラーが表示され続けます。
私は解決策のためにSOを梳きましたが、私の質問に答えるものは見つかりませんでした。私はまた、Google検索を試みて、多くの異なる方法で私の質問を書いたが、役に立たない。ここで
は私のコードはDBHelperがTABLE
をCREATE方法public int deleteData(int id){
String ID = String.valueOf(id);
SQLiteDatabase database = this.getWritableDatabase();
return database.delete(TABLE_NAME, _id + " = ?",new String[]{ID});
を削除
削除ボタン
public void toDeleteNote(View view) {
DBHelper dbHelper = new DBHelper(this);
int deletedRows = dbHelper.deleteData(selectedID);
if (deletedRows > 0){
Toast.makeText(getBaseContext(), selectedName + " deleted successfully", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "Something went wrong!", Toast.LENGTH_LONG).show();
}
Intent intent5 = new Intent(EditData.this, MainActivity.class);
startActivity(intent5);
}
}
です
@Override public void onCreate(SQLiteDatabase db) { String createTable = "CREATE TABLE " + TABLE_NAME + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, " + MAP_NO + " INTEGER, " + LOCATION + " TEXT, " + DATE + " INTEGER, " + NOTATHOMES + " TEXT)"; db.execSQL(createTable); }
さらに情報が必要な場合は、お気軽にお問い合わせください。
テーブル定義を追加できますか?どの行が削除されているか確認していますか?また、列全体ではなく行全体を削除しています –
こんにちは、@ cricket_007、申し訳ありませんが、私は間違いを修正します。私は行ではなく、列を削除したい。 –
おそらく 'selectedID'にはあなたが思うと思われる値は含まれていません。 – Andreas