簡體   English   中英

更新SQLite數據庫Android中的列時出錯

[英]Error while updating the column in SQLite Database Android

我正在嘗試使用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_courses中更改course_name = DataStructures的checked_status值。 我確定它在數據庫中,但是它拋出了錯誤。 請通過這個指導我。

更好的解決方案是避免使用字符串連接來構建查詢。 而是這樣做:

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

這不僅可以為您處理引號,還可以避免SQL注入攻擊。 在SQL查詢中使用用戶輸入時,請務必小心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM