Android 更新SQLite数据库中的列时出错

Android 更新SQLite数据库中的列时出错,android,sqlite,Android,Sqlite,我正在尝试使用update方法更新表中的列。我遇到如下语法错误: SQLiteException: no such column: DataStructures (code 1): , while compiling: UPDATE tbl_courses SET checked_status=? WHERE course_name=DataStructures 以下是我的数据库查询: public static final String TABLE_COURSES = "tb

我正在尝试使用update方法更新表中的列。我遇到如下语法错误:

SQLiteException: no such column: DataStructures (code 1): , while compiling: UPDATE tbl_courses SET checked_status=? WHERE course_name=DataStructures
以下是我的数据库查询:

        public static final String TABLE_COURSES = "tbl_courses";
        public static final String COLUMN_COURSE_ID = "_id";
        public static final String COLUMN_COURSE_NAME = "course_name";
        public static final String COLUMN_COURSE_SELECTED = "checked_status";
        public static final String COLUMN_COURSE_CODE = "course_code";   

        public void updateSelectedCourseField(String courseName, String courseSelected) {
            ContentValues args = new ContentValues();
            args.put(COLUMN_COURSE_SELECTED, courseSelected);
            database.update(TABLE_COURSES, args, COLUMN_COURSE_NAME + "=" + courseName,null);
    }

我试图更改tbl_课程中的checked_status值,其中课程名称=数据结构。我确信它在数据库中,但它给了我一个错误。请指导我完成此操作。

更好的解决方案是避免在生成查询时使用字符串连接。而是这样做:

database.update(TABLE_COURSES, args, COLUMN_COURSE_NAME + "=?", new String[]{courseName});

这不仅可以为您处理引号,还可以避免SQL注入攻击。在SQL查询中使用用户输入时一定要小心。

更好的解决方案是避免在生成查询时使用字符串连接。而是这样做:

database.update(TABLE_COURSES, args, COLUMN_COURSE_NAME + "=?", new String[]{courseName});
这不仅可以为您处理引号,还可以避免SQL注入攻击。在SQL查询中使用用户输入时务必小心