2013-03-07 3 views
-2

Это ошибка, я получаю:«У Вас есть ошибка в вашем SQL синтаксиса, проверьте руководство, которое соответствует версии сервера MySQL ......»

«У вас ошибка в вашей 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()); 
    } 
+0

Какие типы столбцов? –

+3

У вас не может быть пробелов в именах столбцов мой друг, если вы не окружите их разделителем (для MySQL разделителем является обратная сторона '). – Perception

+0

См. Http://stackoverflow.com/questions/6055505/blank-spaces-in-column-names-with-mysql – JoDev

ответ

5

столбцы являются "LAST_NAME "или" Last Name "???

Это ваша ошибка. Не используйте пробел в имени столбца.

Если вы действительно очень нужно, вы можете избежать имени столбца с помощью: 'Last Name'

+0

Yikes. Большое спасибо! –

+0

Рад, что я мог помочь! вы можете принять ответ, если хотите :) – BobTheBuilder

+2

+1 для сердитых полужирным шрифтом. – vikingsteve

3

Побега этих имен с пробелами в них. Нравится

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

И старайтесь избегать этих имен.

+0

Большое вам спасибо! –

+0

@TerraSova - Добро пожаловать :) –