有谁能帮我看看这段代码为什么不能修改数据库里的数据!!!   
  private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                                try{    
            Connection con = DBControl.connectToDb();
            Statement stmt = con.createStatement();
           // int a=this.jTable2.getValueAt(jTable2.getSelectedRow(),0));//
           
           stmt.executeUpdate("exec UPDATE studentmaset("+this.jTextField4.getText()+","+this.jTextField5.getText()+", "+this.jTextField6.getText()+","+this.jTextField1.getText()+"),"+this.jTable2.getValueAt(jTable2.getSelectedRow(),0));
           // System.out.println("程序运行到此处!");           
            this.getData();
            this.getNull();
            jOptionPane2.showMessageDialog(this,"修改成功!");            
        }catch(Exception E){
            jOptionPane2.showMessageDialog(this,E.getMessage());
            E.printStackTrace();
        } 
    }  ==================================================================================
语句
stmt.executeUpdate("exec UPDATE studentmaset("+this.jTextField4.getText()+","+this.jTextField5.getText()+", "+this.jTextField6.getText()+","+this.jTextField1.getText()+"),"+this.jTable2.getValueAt(jTable2.getSelectedRow(),0));
 到底为什么出错?该怎么修改!

解决方案 »

  1.   


    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'UPDATE' 附近有语法错误。
            at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
            at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
            at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
            at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
            at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
            at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
            at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
            at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
            at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
            at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
            at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
            at com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source)
    ===================================================================================以上是NETBeans红色字体显示的,以下是兰色显示的
    ===================================================================================
     at guanli.ShowData.jButton5ActionPerformed(ShowData.java:233)
            at guanli.ShowData.access$200(ShowData.java:18)
            at guanli.ShowData$3.actionPerformed(ShowData.java:134)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:5488)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
            at java.awt.Component.processEvent(Component.java:5253)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3955)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1778)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
      

  2.   

    update tableName set coloumName=value,coloumName=value......
      

  3.   

    "+this.jTextField5.getText()+", 
    应该这里出错了吧,
    '+this.jTextField5.getText()+'
    改成这样试试,
      

  4.   

    恩,应该是这样的
    '"+this.jTextField5.getText()+"'
    但问题真正的原因不在这里,我试过了,老提示说UPDATE附近有错误!
      

  5.   

    已经说了是sql的问题了,就把你的sql打印出来看看,光这么看不出来问题的
      

  6.   

    UPDATE 表名SET 字段=值; 你的字段要是varchar类型应该”'“+this.jTextField5.getText()+”'“  输入的类型和数据库的类型要对应,catch错误时可以用System.out.print("Error is"+e);这样只要你能读的懂英文在有点感觉很容易就可以找出错误了 ,你的sql语句写的很乱啊 其实用PreparedStatement好一些,不用很麻烦的写String
      

  7.   

    你的sql有问题this.jTextField4.getText,你得到的是一个变量值,而且这个变量是个String 的应该是('"+this.jTextField4.getText+"'),你少一个双引号,如果是数值型的,就是(‘+this.jTextField4.getText+'),
      

  8.   

    UPDATE 表名SET 字段=值
    只有字段没有附值啊
    把你的语句先去数据库执行一下,能修改了,再改成java语句
      

  9.   

    journeydj(小小菜鸟) 
    ============================
    说对了,是他说的那个问题
    应该是这个样子
     
    update 表名 set '"+列名1=列名1的值+"', '"+列名2=列名2的值+"','" +列名3=列名3的值+"' where  要修改的表中那一行 ="+要修改的行的主键ID+"============================
    谢谢大家!