2011-04-08 126 views
0

的SQLException在任何它给错误像场的任何数据的更新:创建麻烦与更新语句

驱动程序加载
声明

值java.sql.SQLException:常规错误
在sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6986)
在sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
在sun.jdbc.odbc.JdbcOdbc.SQLExecDirect( JdbcOdbc.java:3110)
在sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338) 在sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288) 在sanskarwani.updateREGISTRATION1(sanskarwani.java:2792) 在sanskarwani.access $ 700; $ sanskarwani 8.actionPerformed(sanskarwani.java:1255)(sanskarwani.java:29) 在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 在javax.swing.AbstractButton中的$处理器(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6038) (javax.swing.JComponent.processMouseEvent(JComponent.java:3260) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) 在java.awt.Container.dispatchEventImpl(Container.java:2116) 在java.awt.Component.dispatchEvent(Component.java:4240) 在java的。 awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) 在java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) 在java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) 在java.awt.Container.dispatchEventImpl(Container.java:2102) 在java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java。 awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) 在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) 在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) 在java.awt中。 EventDispatchThread.pumpEvents(EventDispat chThread.java:168) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) 在java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

我的代码是:

String nmreg = cbnm.getSelectedItem().toString(); 

if(nmreg.equals("")) //{ 
    JOptionPane.showMessageDialog(null," ENTER THE NAME "); 

try 
{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    System.out.println("\n Driver loaded"); 

    Connection con = DriverManager.getConnection("jdbc:odbc:wanisamajDB"); 
    Statement stmt = con.createStatement(); 

    System.out.println("statement is created"); 

    String qry = " UPDATE Registration1 set RegistrationNo = '"+cbregn.getSelectedItem()+"',SeniorPerson = '"+cbnm.getSelectedItem()+"', NativePlace = '"+tfplace.getText()+"',Kul = '"+tfkul.getText()+"', Gotra = '"+tfgotra.getText()+"' ,KulSwami = '"+tfswami.getText()+"', ResidensialAddress = '"+taraddr.getText()+"' , PinCode = '"+tfpcd.getText()+"', STDcode = '"+tfstdcode.getText()+"',TelephoneNo = '"+tftele.getText()+"', MobileNo = '"+tfmno.getText()+"', Email = '"+tfemail.getText()+"',Website ='"+tfweb.getText()+"',Education ='"+tfedu.getText()+"',Branch ='"+tfbrch.getText()+"',BloodGroup ='"+cbbldgrp.getSelectedItem()+"' where SeniorPerson='" +cbnm.getSelectedItem().toString()+"'" ; 
      // String qry= " UPDATE Registration1 set SeniorPerson = '"+cbnm.getSelectedItem().toString()+"',NativePlace = '"+tfplace.getText()+"', Kul = '"+tfkul.getText()+"',Gotra = '"+tfgotra.getText()+"' , KulSwami = '"+tfswami.getText()+"', ResidensialAddress = '"+taraddr.getText()+"' , PinCode = '"+Integer.parseInt(tfpcd.getText())+"', STDcode = '"+Integer.parseInt(tfstdcode.getText())+"',TelephoneNo = '"+Integer.parseInt(tftele.getText())+"',MobileNo = '"+Integer.parseInt(tfmno.getText())+"',Email = '"+tfemail.getText()+"',Website ='"+tfweb.getText()+"',Education ='"+tfedu.getText()+"',Branch ='"+tfbrch.getText()+"',BloodGroup ='"+cbbldgrp.getSelectedItem().toString()+"' where RegistrationNo='" +Integer.parseInt(cbregn.getSelectedItem().toString())+"'" ; 
       stmt.executeUpdate(qry); 
       JOptionPane.showMessageDialog(null,"RECORD IS UPDATED SUCCESSFULLY "); 
       System.out.println("QUERY");  

      // cbregn.setEditable(false); 
       cbnm.setEditable(false); 
       tfplace.setEditable(false); 
       tfkul.setEditable(false); 
       tfgotra.setEditable(false); 
       tfswami.setEditable(false); 
       taraddr.setEditable(false); 
       tfpcd.setEditable(false); 
       tfstdcode.setEditable(false); 
       tftele.setEditable(false); 
       tfmno.setEditable(false); 
       tfemail.setEditable(false); 
       tfweb.setEditable(false); 
       tfedu.setEditable(false); 
       tfbrch.setEditable(false); 
       cbbldgrp.setEditable(false); 
       con.close(); 
       stmt.close(); 
      } 
//   catch(SQLException eM) 
//   { 
//   JOptionPane.showMessageDialog(null,"RECORD IS NOT FOUND "); 
//   } 
      catch(Exception et) 
      { 
       et.printStackTrace(); 
       // System.out.println("error:"+et.getMessage()); 
      } 

帮我请

+2

尝试使用PreparedStatement进行更新查询。 – 2011-04-08 05:29:50

+2

不是这是问题,但你不想为该更新语句使用where子句?你将会更新所有的行。 – MeBigFatGuy 2011-04-08 05:32:31

+1

这是您第一次遇到上述更新错误吗?尝试只更新一个字段,然后检查是否会出现相同的错误或尝试执行硬编码查询。另外我更喜欢PreparedStatement,因为Shashank_Itmaster提到了一个尝试。 – ace 2011-04-08 05:55:05

回答

1

这是一个错字: “Residensial”?

... ResidensialAddress = '"+taraddr.getText()+"' ... 
1

为了避免使用PrepardStatment方法执行sql注入tru,它更容易使用,并在最后得到相同的结果。