Проблемы с SqlExceptions в заявлении об обновлении

При обновлении любых данных любого поля возникает ошибка, например:

Драйвер загружен
создан оператор

Мой код:

Помоги мне, пожалуйста

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());
            }

Это опечатка: "Жилой дом"?


person amitbidwai    schedule 08.04.2011    source источник
comment
не в том, что это проблема, но вам не нужно предложение where для этого оператора обновления? вы будете обновлять все строки.   -  person Shashank_Itmaster    schedule 08.04.2011
comment
Вы впервые столкнулись с указанной ошибкой при обновлении? Попробуйте обновить только одно поле, затем проверьте, появится ли такая же ошибка, или попробуйте выполнить жестко запрограммированный запрос. Также я предпочитаю PreparedStatement, как сказал Shashank_Itmaster, попробуйте.   -  person MeBigFatGuy    schedule 08.04.2011
comment
Можете ли вы распечатать выполняемый запрос и обновить его здесь.   -  person ace    schedule 08.04.2011
comment
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.jcdbcStatement.java:338) на sun.jcdbcStatement.exe .java: 288) на sanskarwani.updateREGISTRATION1 (sanskarwani.java:2792) на sanskarwani.access $ 700 (sanskarwani.java:29) в sanskarwani $ 8.actionPerformed (sanskarwani.java:1255) на javax.swing.fstract .java: 1995) в javax.swing.AbstractButton $ Handler.actionPerformed (AbstractButton.java:2318) в javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:387) в javax.swing.DefaultButressedModelava. 242) в яв ax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:236) в java.awt.AWTEventMulticaster.mouseReleased (AWTEventMulticaster.java:272) в java.awt.Component.processMouseEvent (Component.java:60) .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.dispatchEventImp l (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.awpatchThread.java:183 .awt. EventDispatchThread.pumpEvents (EventDispatchThread.java:168) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:160) в java.awt.EventDispatchThread.run (EventDispatchThread.java:121)   -  person Nishan    schedule 08.04.2011


Ответы (2)


чтобы избежать sql-инъекции tru с использованием метода PrepardStatment, его проще использовать и в конце получить те же результаты.

... ResidensialAddress = '"+taraddr.getText()+"' ...
person fipple    schedule 08.04.2011

Попробуйте использовать PreparedStatement для выполнения запроса на обновление.

person Adi Mor    schedule 08.04.2011