catch(ClassNotFoundException e) {
   e.printStackTrace();
}("insert into ecr values("+ineidinename,inestime,inedeploytime,inemotorsts)");
这一句最好改一改,如果是字符形式的加上单引号!
这样,可能你的驱动根本就没有加载成功!你看看有什么异常信息!

解决方案 »

  1.   

    整个语句用try包起来
    然后捕获异常,打印出来看看是什么异常
      

  2.   

    你要插入的数值是以参数的形式出现的不能包含在双引号里,如String sqlstr="insert into ecr values('"+ineidinename+"','"+inestime+"','"+inedeploytime+"','"+inemotorsts+"')";,(我假如这些插入的数值是字符串类型)
      

  3.   

    在你catch语句中加上e.printStackTrace(),打印出异常信息,看看什么情况!
    记住最后关闭连接,避免内存泄漏!
      

  4.   


    sql.executeUpdate("insert into ecr values(10004,'wfwe','wewc',2)");执行都没用BTW,我好像没装驱动来着就是在SQL SERVER里加好了数据库,设好了数据源(ODBC),然后就在程序里连接了,可以查询数据的
    可是不能更新,是不是要装驱动?e.printStackTrace(),还有,打印在哪里的啊,弱弱地问:
      

  5.   

    e.printStackTrace(),
    这个输出的信息在控制太可以看到啊!
    如果你不用try catch来捕获异常的话,干脆在你的这个代码所在的方法外用throws Exception来抛出所有异常信息,来看看到底是怎么回事!
    如果加载驱动,连接数据库都没搞定,肯定就不能插入啊!
      

  6.   

    没有抛出任何异常啊!
    try
    {
    sql.executeUpdate("insert into ecr values(10004,'main3','2005 4.3 13:23:23','23:34:12',2)");

    }
    catch(SQLException e) 
    {
    e.printStackTrace();
    }
    con.close();这样运行后没有异常抛出如果要装驱动的话该装哪里的驱动啊?
      

  7.   

    先下载sql JDBC的驱动..微软网站有,安装方法,网上有.
      

  8.   

    驱动装好了,那三个.jar文件的环境变量也设置好了
    还是插不进!我是这样连接的:运行时候可以select,也没有异常抛出啊!
    try
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch(ClassNotFoundException e) {}
    con=DriverManager.getConnection("jdbc:odbc:ESSDB");
    sql=con.createStatement();
    try
    {
    sql.executeUpdate("insert into ecr values(10004,'main3','2005a','23:34:12',2)");
    }
    catch(SQLException e) 
    {
    e.printStackTrace();
    }
    con.close();到底怎么回事啊。。
      

  9.   

    在插入语句后加上一句con.commit()试试!
      

  10.   

    抛出以下异常了!java.lang.NumberFormatException: For input string: "java.awt.TextField[textfield0,5,5,136x23,text=,editable,selection=0-0]"
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at DBUI.Query(dbadministrator.java:133)
    at DBUI.actionPerformed(dbadministrator.java:84)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
      

  11.   

    这就是你插入的数据格式不对啊!你加了我刚才的那句就出现这个问题了?
    你插入的数据类型一定要和数据库中字段的数据类型对应.
    怎么报出java.awt.TextField它呢?
    把你的其余代码贴出来看看,这个问题应该是其它代码的问题!
      

  12.   

    晕。
    现在能插了
    搞了半天事下面这段的问题。。
    去掉了就不抛了错哪里了啊、、、
    TextField id,inid,inname,instime,indeploytime,inmotorsts; 
    int ineid,inemotorsts;
    String inename,inestime,inedeploytime;ineid=Integer.parseInt(inid.toString());
    inename=inname.toString();
    inestime=instime.toString();
    inedeploytime=indeploytime.toString();
    inemotorsts=Integer.parseInt(inmotorsts.toString());
      

  13.   

    晕,你用的是TextField,怎么能这样啊:
    ineid=Integer.parseInt(inid.toString());
    inename=inname.toString();
    inestime=instime.toString();
    inedeploytime=indeploytime.toString();
    inemotorsts=Integer.parseInt(inmotorsts.toString());你如果想取得这几个TextField中的内容应该这样啊
    inename=inname.getText();啊!
    下面几个都要改!
      

  14.   

    改成:
    ineid=Integer.parseInt(inid.getText());
    inename=inname.getText();
    inestime=instime.getText();
    inedeploytime=indeploytime.getText();
    inemotorsts=Integer.parseInt(inmotorsts.getText());