我正在
从要在数据库中插入数据的位置调用InserStudent.jsp
表单中的文件。AddStudent.jsp
我的数据库表结构如下:
ID|Name|RollNumber|PhoneNumber|StudyProgram|Status
下面是代码InserStudent.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<body>
<%
String nam=request.getParameter("stuname");
String roll=request.getParameter("sturoll");
String phone=request.getParameter("stuphone");
String prog=request.getParameter("stuprogram");
String stats=request.getParameter("stustatus");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:stdProjectDataDSN";
Connection c = DriverManager.getConnection(url);
Statement statement = c.createStatement() ;
String sql = "insert into students (ID, NAME, RollNumber, PhoneNumber, StudyProgram, Status )";
sql += "values ( '"+ nam +"','"+ nam +"','"+ roll +"','"+ phone +"','"+ prog +"',"+ stats +" )";
statement.execute ( sql );
c.close();
response.sendRedirect("ManageAllStudent.jsp");
%>
</body>
</html>
这会导致以下异常:
HTTP 状态 500
类型异常报告
信息
描述 服务器遇到一个内部错误 () 阻止它完成这个请求。
例外
org.apache.jasper.JasperException:在第 27 行处理 JSP 页面 /web/InserStudent.jsp 时发生异常
24: 语句语句 = c.createStatement() ;
25: String sql = "插入学生(ID, NAME, RollNumber, PhoneNumber, StudyProgram, Status)";
26: sql += "values ('"+ nam +"','"+ nam +"','"+ roll +"','"+ phone +"','"+ prog +"',"+统计数据 +" )";27:statement.execute(sql);
28: c.close(); 29:30:response.sendRedirect("ManageAllStudent.jsp");堆栈跟踪:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper.servlet.JspServlet.serviceJspFile( JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
根本原因
javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Microsoft Access > Driver] 参数太少。预期 1. 注意 Apache Tomcat/6.0.35 logs.javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 中提供了根本原因的完整堆栈跟踪
我错过了什么或我做错了什么?在ShowAllStudent.jsp
页面中,它显示了我使用相同脚本的数据库中的所有数据。