【发布时间】:2011-08-01 05:43:21
【问题描述】:
在更新任何字段的任何数据时,它会给出如下错误:
已加载驱动程序
语句已创建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.java:29) 在 sanskarwani$8.actionPerformed(sanskarwani.java:1255) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) 在 java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) 在 java.awt.Component.processMouseEvent(Component.java:6038) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3260) 在 java.awt.Component.processEvent(Component.java:5803) 在 java.awt.Container.processEvent(Container.java:2058) 在 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) 在 java.awt.Component.dispatchEvent(Component.java:4240) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 在 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(EventDispatchThread.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());
}
请帮帮我
【问题讨论】:
-
尝试使用 PreparedStatement 进行更新查询。
-
不是这就是问题所在,但您不想要该更新语句的 where 子句?您将更新所有行。
-
这是您第一次遇到上述更新错误吗?尝试仅更新一个字段,然后检查是否会出现相同的错误或尝试执行硬编码查询。我也更喜欢 Shashank_Itmaster 提到的 PreparedStatement 尝试一下。
-
你能打印出正在运行的查询并在此处更新吗?