У меня есть экземпляр класса Check, который я хочу удалить из базы данных SQlite, в которой он хранится. Интересно, возможно ли это?
Когда я запускаю код, я получаю исключение:
android.database.sqlite.SQLiteException: unrecognized token: "8565f9b5" (code 1): , while compiling: DELETE FROM crimes WHERE uuid = 8565f9b5-5968-4e11-8d55-b7dcfd676023
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1499)
at nl.lekolkman.android.sportveldonderhoud.CheckLab.deleteCheck(CheckLab.java:40)
at nl.lekolkman.android.sportveldonderhoud.DeleteCheckDialogFragment$2.onClick(DeleteCheckDialogFragment.java:43)
Это мой код:
public class DeleteCheckDialogFragment extends DialogFragment {
Check mCheck;
public static DeleteCheckDialogFragment newInstance(Check mCheck) {
DeleteCheckDialogFragment frag = new DeleteCheckDialogFragment();
frag.setCheck(mCheck);
return frag;
}
public void setCheck(Check check) {
this.mCheck = check;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_delete_check_dialog, container, false);
getDialog().setTitle("Verwijder controle");
Button annuleren = (Button) rootView.findViewById(R.id.annuleren_verwijderen);
annuleren.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
Button bevestigen = (Button) rootView.findViewById(R.id.bevestigen_verwijderen);
bevestigen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// verwijder check
CheckLab checkLab = CheckLab.get(getActivity());
checkLab.deleteCheck(mCheck);
}
});
return rootView;
}
}
И код обработки SQLite:
public void deleteCheck(Check c) {
String whereClause = "uuid = " + c.getId().toString();
mDatabase.delete(CheckDbSchema.CheckTable.NAME, whereClause , null);
}