-1

这是我得到的错误:

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,了解在 'Name='Sanchez',Middle Name='Stark',First Name='Ned',Birthday= 附近使用的正确语法'1993-11' 在第 1 行"

 private void UpdateButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
      try {
        String WorkID = WorkIDField3A.getText();
        String LastName = LastNameField3.getText();
        String MiddleName = MidNameField3.getText();
        String FirstName = FirstNameField3.getText();
        String Birthday = BDayField3.getText();
        String Age = AgeField3.getText();
        String Gender = (String) GendCombo3.getSelectedItem();
        String CStatus = (String) CStatCombo3.getSelectedItem();
        String Dept = (String) DeptCombo3.getSelectedItem();
        String Pos = PosField3.getText();
        String WorkHrs3A = WorkHoursField3A.getText();
        String WorkHrs3B = WorkHoursField3B.getText();
        String WorkDaysFrom = (String) WorkDaysFromCombo.getSelectedItem();
        String WorkDaysTo = (String) WorkDaysToCombo.getSelectedItem();
        String HireDate = HireDateField3.getText();

        String SQL = "UPDATE employees SET Last Name =?, Middle Name =?, First Name =?, Birthday =?, Age=?, Gender =?, Civil Status =?, Department =?, Position =?, Work Hours From(AM) =?, Work Hours To(PM) =?, Work Days From =?, Work Days To =?, Hire Date =? WHERE WorkID=?";

        stmt = conn.prepareStatement(SQL);

        stmt.setString(1, LastName);
        stmt.setString(2, MiddleName);
        stmt.setString(3, FirstName);
        stmt.setString(4, Birthday);
        stmt.setString(5, Age);
        stmt.setString(6, Gender);
        stmt.setString(7, CStatus);
        stmt.setString(8, Dept);
        stmt.setString(9, Pos);
        stmt.setString(10, WorkHrs3A);
        stmt.setString(11, WorkHrs3B);
        stmt.setString(12, WorkDaysFrom);
        stmt.setString(13, WorkDaysTo);       
        stmt.setString(14, HireDate);
        stmt.setString(15, WorkID);
        //Execute the SQL statement and update the table
        stmt.executeUpdate();
        JOptionPaneUpdate.showMessageDialog(this, "Update Succesful!");
  }catch(Exception e)
  {
      JOptionPaneUpdateFail.showMessageDialog(this, e.getMessage());
  }
4

2 回答 2

5

你的栏目是“ LAST_NAME”还是“ Last Name”???

这是你的错误。不要在列名中使用空格。

如果你真的需要,你可以使用以下方法转义列名:'Last Name'

于 2013-03-07T12:55:02.873 回答
3

转义这些带有空格的名称。像这样

UPDATE employees 
SET `Last Name` =?, 
    `Middle Name` =?,
    `First Name` =?, 
     Birthday =?, 
     Age=?, 
     Gender =?, 
     `Civil Status` =?, 
      ...
WHERE WorkID=?

请尽量避免使用这些名称。

于 2013-03-07T12:55:59.887 回答