2017-08-04 82 views
0

我使用下面的代码:无法通过java写在SQL数据库中的数据,但成功读取

JButton btnEdit = new JButton("Edit"); 
btnEdit.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 

     try{ 
     String query = "Insert Into check(Name, Password)Values(?,?)"; 
     PreparedStatement pst = con.prepareStatement(query); 
     pst.setString(1, textField.getText()); 
     pst.setString(2, textField_1.getText()); 
/*  pst.setString(3, textField_2.getText()); 
     pst.setString(4, textField_4.getText()); 
     pst.setString(5, textField_5.getText()); 
     */ 

     pst.execute(); 
     JOptionPane.showMessageDialog(null, "Data Saved"); 
     pst.close(); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
}); 

我从SQL数据库检索数据,但每当我尝试插入数据,我在运行时出现错误:

值java.sql.SQLException:[微软] [ODBC SQL Server驱动程序] [SQL 服务器]不正确的语法关键字附近的 '检查'。在 sun.jdbc.odbc.JdbcOdbc.createSQLException(未知来源)处 sun.jdbc.odbc.JdbcOdbc.SQLExecute(未知来源) sun.jdbc.odbc.JdbcOdbc.standardError(未知来源)在 sun.jdbc .odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)at AdminPanel $ 2.actionPerformed(AdminPanel.java:184)at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)at javax.swing.AbstractButton $ Handler.actionPerformed(Unknown Source )在 javax.swing.DefaultButtonModel.fireActionPerformed(未知来源)在 javax.swing.DefaultButtonModel.setPressed(未知来源)处的java.awt javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知 源) .Component.processMouseEvent(Unknown Source)at javax.swing.JComponent.processMouseEvent(Unknown Source)at java.awt.Component.processEvent(Unknown Source)at java.awt.Container.processEvent(Unknown Source)at java .awt.Component.dispatchEventImpl(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)at java.awt.Container.dispatchEventImpl(Unknown Source)at java.awt.Window .dispatchEventImpl(来源不明)处 java.awt.EventQueue.dispatchEventImpl(来源不明) java.awt.Component.dispatchEvent(来源不明)处 的Java java.awt.EventQueue.access $ 300(来源不明)。 awt.EventQueue $ 3.run(来源不明)处 java.security.AccessController.doPrivileged(本机方法)在 java.security.ProtectionDomain $ 1.doIntersectionPrivilege java.awt.EventQueue中的$ 3.run(来源不明)(未知 源)在 java.security.ProtectionDomain $ 1.doIntersectionPrivilege(Unknown Source)at java.awt.EventQueue $ 4.run(Unknown Source)at java.awt.EventQueue $ 4.run(Unknown Source)at java.security。访问在 java.security.ProtectionDomain $ 1.doIntersectionPrivilege(未知 来源)在java.awt.EventQueue.dispatchEvent(来源不明)Controller.doPrivileged(本机方法)在 java.awt.EventDispatchThread.pumpOneEventForFilters(来源不明) 是java .awt.EventDispatchThread.pumpEventsForFilter(未知来源) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(未知 源)在java.awt.EventDispatchThread.pumpEvents(未知来源) 在java.awt.EventDispatchThread.pumpEvents(未知来源)在 java.awt.EventDispatchThread.run(Unknown Source)

+1

尝试在'values'之前添加空格 –

+0

尝试在sql语句的末尾添加分号。 String query =“Insert into check(Name,Password)Values(?,?);”; –

+0

仍然收到相同的错误日志。尝试了你的两个建议bro –

回答

1

'check'is ar eserved关键字等代码失败,尝试使用不是关键字的名称应该可以解决问题。

+0

使用INSERT INTO [检查](.. .'也可以解决问题,而不必更改表名。 –

+0

感谢@GordThompson分享这些信息... – deepakl