我的查询中关键字附近的语法不正确

时间:2015-09-29 11:43:08

标签: java sql sql-server

当我在此方法中运行查询时,出现以下错误:

有例外! &#39 ;;'附近的语法不正确。

请注意,我的courseNr是数据库中的VARCHAR。

我试图在MSSQL中运行查询,但它可以工作,但不能用于java。

public ArrayList<Student> getAssignedStudents(Course course){
    try {
        Statement stmt = connection.createStatement();
        ResultSet rset = stmt.executeQuery("SELECT Student.pnr, Student.namn, Registrering.betyg FROM Registrering INNER JOIN Student ON Registrering.pnr = Student.pnr WHERE betyg != NULL AND kursnr = '" + course.getCourseNr() + "';");

        ArrayList<Student> studentList = new ArrayList<Student>();
        while (rset.next()) {

            String pnr = rset.getString("pnr");
            String name = rset.getString("namn");
            String grade = rset.getString("betyg");

            Student student = new Student();
            student.setName(name);
            student.setPnr(pnr);
            student.setGrade(grade);

            studentList.add(student);

        }
        return studentList;
    } catch (Exception e) {
        System.err.println("Got an exception! ");
        System.err.println(e.getMessage());
        return null;
    }
}

2 个答案:

答案 0 :(得分:1)

尝试执行(betyg is not NULL)而不是您正在做的事情 另外,请确保course.getCourseNr()的值不包含撇号(')。

答案 1 :(得分:0)

你的kursnr可能是你db中的INT字段。如果是这样,你应该删除单引号&#39;和&#39;希望你能够好好去