0

我目前正在尝试从我的 android 数据库中删除一行数据,但收到一个不寻常的错误。该行在名称为 Timetable 的表中如下所示

_ID =(自动递增),MODULE = CM111,DAY = MONDAY,STARTTIME = 13:00,DURATION = 4 小时,TYPEOFSESSION = LAB,ROOM = PBS2

我正在使用此代码进行删除

private int removeEvent (String modulecodepicker){
    try{
    SQLiteDatabase db = events.getWritableDatabase();
    return db.delete(TABLE_NAME, MODULE + " = " + modulecodepicker, null);
    }catch(SQLiteException ex){
        Toast toast = Toast.makeText(this, "Broken", 10);
        toast.show();
    }
    return 0;
}

这将返回此 SQL 错误

android.database.sqlite.SQLiteException:没有这样的列:CM111:,编译时:DELETE FROM timetable WHERE module = CM111

谢谢

4

2 回答 2

0

你可以为上面创建存储过程,它会更安全,更容易,

而使用内联也容易发生 sql 注入

请参考在 sql lite 中编写 procs

http://chriswolf.heroku.com/articles/2011/01/26/adding-stored-procedures-to-sqlite

于 2012-04-23T11:22:57.973 回答
0

SELECT 'CM111' from timetable首先用一个语句交叉检查它。如果它不起作用,那么很明显你的 DELETE 不起作用。

于 2012-04-23T11:37:00.160 回答