以下是我getscore.jsp页面中的代码:
SimpleDateFormat sdf = new SimpleDateFormat(); Date d = sdf.parse("5/15/2006"); // 下面将学生考试结果保存到test_result表中
sql ="insert into test_result (studentid,score,starttime,classid,mianshij) values ('"
+(String)(session.getAttribute("studentid"))+"','" + score+"','"+d+"','"+(String)(session.getAttribute("classid")) +"','"+score+"')";
conn.executeUpdate( sql );
我的是JSP,SQLSERVER2000开发一个在线考试系统. test_result表中字段是testid(自动编号),studentid(int),score(int),starttime(datetime),classid(varchar),mianshij(int)
运行页面提示HTTP Status 500错误.
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.test.getscore_jsp._jspService(org.apache.jsp.test.getscore_jsp:198)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
org.apache.jsp.test.getscore_jsp._jspService(org.apache.jsp.test.getscore_jsp:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
SimpleDateFormat sdf = new SimpleDateFormat(); Date d = sdf.parse("5/15/2006"); // 下面将学生考试结果保存到test_result表中
sql ="insert into test_result (studentid,score,starttime,classid,mianshij) values ('"
+(String)(session.getAttribute("studentid"))+"','" + score+"','"+d+"','"+(String)(session.getAttribute("classid")) +"','"+score+"')";
conn.executeUpdate( sql );
我的是JSP,SQLSERVER2000开发一个在线考试系统. test_result表中字段是testid(自动编号),studentid(int),score(int),starttime(datetime),classid(varchar),mianshij(int)
运行页面提示HTTP Status 500错误.
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.test.getscore_jsp._jspService(org.apache.jsp.test.getscore_jsp:198)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.getInt(Unknown Source)
org.apache.jsp.test.getscore_jsp._jspService(org.apache.jsp.test.getscore_jsp:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.
------
很清楚了吧, 不过建议不要用ODBC。
+(String)(session.getAttribute("studentid"))+"','" + score+"','"+d+"','"+(String)(session.getAttribute("classid")) +"','"+score+"')";
中有很多单引号是不必要的,你有好几个数据是整型的,这几个数据不能加引号,如果按你的输入的话是insert into test_result (studentid,score,starttime,classid,mianshij) values ('12356','32','132','2315','1231')
实际应该是insert into test_result (studentid,score,starttime,classid,mianshij) values (12356,32,'132','2315',1231'
+(String)(session.getAttribute("studentid"))+"' 放在一个变量里再放进数据库里,试试。String classid=(String)(session.getAttribute("classid"))
String studentid=(String)(session.getAttribute("studentid"))
我按你说的试了一下,还是不行.还是提示和原来同样的错误.
不知道是怎么回事?