2017-01-03 36 views
1

enter image description hereMS訪問插入-SQL異常:一般性錯誤

Jan 03, 2017 2:37:52 PM my.god.godGUI jButton2ActionPerformed  
SEVERE: null 
java.sql.SQLException: General error 
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6993) 
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) 
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3156) 
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(JdbcOdbcPreparedStatement.java:215) 
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(JdbcOdbcPreparedStatement.java:137) 
at my.god.godGUI.jButton2ActionPerformed(godGUI.java:200) 
at my.god.godGUI.access$000(godGUI.java:20) 
at my.god.godGUI$1.actionPerformed(godGUI.java:63) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6516) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
at java.awt.Component.processEvent(Component.java:6281) 
at java.awt.Container.processEvent(Container.java:2229) 
at java.awt.Component.dispatchEventImpl(Component.java:4872) 
at java.awt.Container.dispatchEventImpl(Container.java:2287) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 
at java.awt.Container.dispatchEventImpl(Container.java:2273) 
at java.awt.Window.dispatchEventImpl(Window.java:2719) 
at java.awt.Component.dispatchEvent(Component.java:4698) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) 
at java.awt.EventQueue.access$300(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:706) 
at java.awt.EventQueue$3.run(EventQueue.java:704) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 
at java.awt.EventQueue$4.run(EventQueue.java:720) 
at java.awt.EventQueue$4.run(EventQueue.java:718) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 

這裏是對應於錯誤我的Java文件,

Java文件:

int price=Integer.parseInt(jTextField3.getText()); 
    int num=Integer.parseInt(jTextField2.getText()); 
    int amt=price*num; 
    jLabel4.setText(""+amt); 


    try { 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     con=DriverManager.getConnection("jdbc:odbc:yum"); 
     String sql="insert into Table1 values(?,?,?)"; 
     p=con.prepareStatement(sql); 
     p.setInt(1,num); 
     p.setInt(2,price); 
     p.setInt(3,amt); 
     p.executeUpdate(); 

    } 
    catch(SQLException | ClassNotFoundException s){ 
    Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, s); 

    } 
    finally{ 
     try { 
      p.close(); 
      con.close(); 
     } catch (SQLException ex) { 
      Logger.getLogger(godGUI.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 


}        

當我運行這個文件的第一個tym它工作,但下一個tym它總是彈出相同的錯誤。

我已經參考了以前的答案來改變dsn,重新創建文件,關閉finally塊中的連接,但仍然出現錯誤。

我在這裏錯過了什麼嗎?

任何幫助什麼是錯的?

+0

您可以顯示錶格嗎? – davidxxx

+0

我添加了表格 – esskay

回答

0

當您使用以下的了Syntex插入查詢不列名

字符串SQL = 「插入到表1的值(,,???)」;

您必須確保您提供表中的每個列值,甚至可以爲空。而且您還必須確保您按照在數據庫中定義的順序提供它們。

或使用如下語法。 String sql =「insert into Table1(num,price,amt)values(?,?,?)」;

請分享數據庫表以獲取更多說明。

+0

的圖片,當我進行上述更改時,出現此錯誤 - 'java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver] INSERT INTO語句中的語法錯誤。' – esskay