2016-10-03 114 views
0

我试图在Java中使用MySQL创建一个不允许重复数字的检查。第1行的SQL语法错误

我很难找到我的错误。我一直在调试我的代码几个小时。

错误:您的SQL语法错误;检查手册中 对应于你的MySQL服务器版本正确的语法使用 接近“零其中number = 1”在行1

下面是我的代码

String examNames = examName.getName(); 
    String searchNumber = "SELECT * FROM " + examNames + " WHERE number = ?"; 
    PreparedStatement preparedNumber = connect.prepareStatement(searchNumber); 
    int examNumbers = Integer.parseInt(textNumber.getText()); 
    preparedNumber.setInt(1, examNumbers); 
    ResultSet results = preparedNumber.executeQuery(); 
    if (results.next()) { 
     JOptionPane.showMessageDialog(null, "Exam number was already added"); 
    } 

    else { 
     String examLabel = examName.getText(); 
     String insertContent = " Insert INTO " + examLabel 
       + "(number, content, choiceA, choiceB, choiceC, choiceD, correctans) values(?,?,?,?,?,?,'" 
       + correctAns + "')"; 
     PreparedStatement preparedStatement = connect.prepareStatement(insertContent); 
     int examNumber = Integer.parseInt(textNumber.getText()); 
     String content = textAreaQuestion.getText(); 
     String choiceA = textAreaA.getText(); 
     String choiceB = textAreaB.getText(); 
     String choiceC = textAreaC.getText(); 
     String choiceD = textAreaD.getText(); 
     String correct = correctAns; 
     preparedStatement.setInt(1, examNumber); 
     preparedStatement.setString(2, content); 
     preparedStatement.setString(3, choiceA); 
     preparedStatement.setString(4, choiceB); 
     preparedStatement.setString(5, choiceC); 
     preparedStatement.setString(6, choiceD); 
     preparedStatement.executeUpdate(); 
     JOptionPane.showMessageDialog(null, "Added"); 
    } 
+2

因为examNames为空 – e4c5

+0

是否意味着.getText()无法获取Jlabel值?我也尝试使用.getName(),但仍然为空。我试图用文本字段替换它,它工作。但我需要使用Jlabel – Zcyan

+0

可能是一个想法,包括examName创建的代码......如果您期望getText返回任何内容,那么应包含setText。 – ostergaard

回答

1

如果说

'null WHERE number = 1'

那么就意味着

String examNames= examName.getName();

被返回null

0

在1创建一个返回NewLabel的文本的方法类(您可以通过将NewLabel的文本在一个String对象做到这一点,说海峡,然后返回STR)。 (例如,Class1 cl1 = new Class1();)。现在只需调用您在类1中创建的方法(例如,cl1.getNewLabelText()).getNewLabelText( )是您可以为您的方法创建的示例名称

相关问题