java记录不会从SQLite数据库中删除
我目前正在进行A级计算机科学控制评估,在Android Studio、Java和XML中制作一个Scout Manager应用程序,这些我以前都没有使用过。我现在已经到了最后阶段,但我遇到了一个似乎无法解决的错误
我正在尝试从事件表中删除会话记录。这在以前工作得非常好,但是出于某种原因,尽管代码没有变化(无论如何,我记得),它不再有变化
以下是“编辑事件”活动的代码:
//Deletes the event from the database
public void deleteEvent(View view)
{
boolean result=DatabaseHandler.deleteSession(sessionid);
if (result==true)
{
Toast.makeText(
context,
"Event Deleted",
Toast.LENGTH_SHORT
).show();
backToProgramme(view);
}
else
{
Toast.makeText(
context,
"Error - please try again",
Toast.LENGTH_SHORT
).show();
}
}
下面是databaseHandler中的代码:
//Deleting a session in the events table
public boolean deleteSession(int id)
{
boolean result = false;
String query = "SELECT * FROM " + TABLE_EVENTS + " WHERE " + COLUMN_SEID + " = '"
+ String.valueOf(id) + "'";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);
sessionDetails session = new sessionDetails();
if (cursor.moveToFirst())
{
session.setSessionID(Integer.parseInt(cursor.getString(0)));
db.delete (TABLE_EVENTS, COLUMN_SCID + "=?", new String[]{String.valueOf(
session.getSessionID())});
cursor.close();
result = true;
}
return result;
}
我根本不明白为什么这不是删除记录
# 1 楼答案
您在这里所做的是:
搜索表
TABLE_EVENTS
以查找具有COLUMN_SEID = id
的行,如果找到,则获取列COLUMN_SCID
的值并删除其中COLUMN_SCID
等于该值的行为什么会这样
你不能删除带有
COLUMN_SEID = id
的行吗我认为您的代码应该这样编写:
方法
delete()
返回已删除的行数,因此deleteSession()
如果未删除任何行,将返回false