java,在线等

来源:百度知道 编辑:UC知道 时间:2024/06/16 22:16:33
sql="update user_info set b_h="+gb_h+",x_m="+gx_m+",d_h="+gd_h+",email="+gemail+" where b_h="+gb_h; conn=Conn.getConnection();
stmt.executeUpdate(sql);
conn.close();
}catch(SQLException se){
se.printStackTrace();
}catch(Exception ee){
ee.printStackTrace();
} 抛出下列异常,怎么解决?????????????????只有更新和插入会抛出这个异常,查询、删除都正确!
java.sql.SQLException: Invalid handle
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(Unknown Source)
at B.E.actionPerformed(E.java:137)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fire

你是不是在后面有把stmt给关闭了??
你再自己看看

最后生成的SQL语句 你把它打印出来瞧瞧好不 ???

SQL语句是最容易出错的地方了

我想问一句,为什么不用预编译的来执行呢?又可以防止sql注入,又方便使用。

改这样试试
sql="update user_info set b_h='"+gb_h+"',x_m='"+gx_m+"',d_h='"+gd_h+"',email='"+gemail+"' where b_h='"+gb_h+"'";

把代码全发上来看看,

看看每个字段类型,如果是字符串的,值要加单引号