使用多个列值更新 SQLITE

UPDATE SQLITE with multiple column values

for (int i = 0; i < subjectsforGrades.size(); i++) {

                        sql2 = "UPDATE " + DatabaseHelper.TABLE_4_NAME
                                + " SET "
                                + DatabaseHelper.TABLE_4_COL_3 + " = " + selectedGrades.get(i)
                                + " , "
                                + DatabaseHelper.TABLE_4_COL_4  + " = " + gpaforSubjects.get(i)
                                + " WHERE "
                                + DatabaseHelper.TABLE_4_COL_2 + " = " + subjectsforGrades.get(i);

                        dbHelper.executeQuery(sql2);
                    }

public void executeQuery(String sql) {

    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL(sql);
}

subjectsforGrades、selectedGrades、gpaforSubjects 是数组列表

08-22 11:37:33.157 23019-23019/com.example.sasankapabasara.pdmaplication E/SQLiteLog﹕ (1) near ",": 语法错误

08-22 11:37:33.157  23019-23019/com.example.sasankapabasara.pdmaplication D/AndroidRuntime﹕ Shutting down VM

08-22 11:37:33.157  23019-23019/com.example.sasankapabasara.pdmaplication W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41ff6930)

08-22 11:37:33.177  23019-23019/com.example.sasankapabasara.pdmaplication E/AndroidRuntime﹕ FATAL EXCEPTION: main



    android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: UPDATE gpa SET grade = A+ , gpa = 4.0 WHERE subid = 1

您的查询应该是这样的(使用 "AND' instead of ",")

sql2 = "UPDATE " + DatabaseHelper.TABLE_4_NAME + " SET " + DatabaseHelper.TABLE_4_COL_3 + " = '" + selectedGrades.get(i) + "' AND " +DatabaseHelper.TABLE_4_COL_4 + " = '" + gpaforSubjects.get(i) + "' WHERE " + DatabaseHelper.TABLE_4_COL_2 + " = '" + subjectsforGrades.get(i)+"'";
sql2 = "UPDATE " + DatabaseHelper.TABLE_4_NAME + " SET " + DatabaseHelper.TABLE_4_COL_3 + " = '" + selectedGrades.get(i) + "' , " +DatabaseHelper.TABLE_4_COL_4 + " = '" + gpaforSubjects.get(i) + "' WHERE " + DatabaseHelper.TABLE_4_COL_2 + " = '" + subjectsforGrades.get(i)+"'";