为何在执行insert 后,数据插入数据库,但是出现以下错误
代码如下:
String name=request.getParameter("na");
String zt=request.getParameter("zt");
String nr=request.getParameter("nr");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:test","sa","");
Statement s=con.createStatement(1004,1007) ;
String sql="insert into article (zz,nr,tm) values ('"+name+"','"+zt+"','"+nr+"')";
//response.sendRedirect("www.sohu.com");
ResultSet rs=s.executeQuery(sql);
//ResultSet rs=s.executeQuery("select * from article");
rs.close() ;
con.close() ;
s.close() ;
错误提示:javax.servlet.ServletException: No ResultSet was produced
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:459)
at _0002finsert_00031_0002ejspinsert1_jsp_11._jspService(_0002finsert_00031_0002ejspinsert1_jsp_11.java:85)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
问题点数:5、回复次数:9Top
1 楼lci21(元戈)回复于 2001-08-16 16:43:10 得分 0
ResultSet rs=s.executeQuery(sql);
改成:
ResultSet rs=s.executeUpdate(sql);
在试试
Top
2 楼lci21(元戈)回复于 2001-08-16 16:47:00 得分 0
另外我觉得你的程序不太完善,如果取得的字串为空,将会出现空指针异常,注意处理这种情况Top
3 楼whxab(neo)回复于 2001-08-16 17:01:48 得分 0
查查你插入的zz,nr,tm三字段和它们在数据库中的先后是否一致,若不一致,修改试一试Top
4 楼xiaoluo(Aaron)回复于 2001-08-16 17:15:07 得分 0
各位的方法都试过了,:)还是不行!Top
5 楼lci21(元戈)回复于 2001-08-16 17:33:24 得分 0
我就不信,把程序粘出来,看看!Top
6 楼ls(ls)回复于 2001-08-17 10:33:46 得分 0
'No ResultSet was produced'不是指明没有结果集生成吗?如果sql是一个插入(更新、删除)建议使用executeUpdate(sql),但也可以使用executeQuery(sql),这里的关键错误是实际结果返回的不是一个结果集,而只是一个整数,结果集=整数,当然报错啦;而且你去看看数据库,你的语句实际已经执行了
最后,别忘了给分呀!!
Top
7 楼nanman(南蛮—500万人使用的最强五笔作者)回复于 2001-08-17 10:45:33 得分 5
你只是进行insert操作,没有记录集返回.
ResultSet rs=s.executeUpdate(sql);改为:
s.executeUpdate(sql)
并删除rs.close() ;Top
8 楼xiaoluo(Aaron)回复于 2001-08-17 15:56:20 得分 0
给分了Top
9 楼nanman(南蛮—500万人使用的最强五笔作者)回复于 2001-08-17 15:57:45 得分 0
才5分,太少了!Top




