jsp在做修改信息时的错误,请大家帮忙?在线等侯(给分=20)
我在作修改信息的时候,错误出现在部门从数据库中读取时的错误!
这是原代码:
<%@ include file="../inc/data.jsp"%>
<%@ include file="adm_login.jsp"%>
<%@ page import="java.lang.*" contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>添加新成员</title>
<link href="../inc/styles.css" rel="stylesheet" type="text/css">
</head>
<%
String id=request.getParameter("id");
rst=stmt.executeQuery("select a.department_name,a.department_code,b.member_id,b.name,b.sex,b.birth_y,b.birth_m,b.birth_d,b.tel,b.mobile,b.email,b.xueli,b.bp,b.intro from department a ,member_info b where a.department_code=b.department and b.member_id="+id);
if (rst.next())
{
%>
<body bgcolor="#D7EBFF">
<%//=rst.getString("department_name")%>
<p align="center"><strong>修改成员信息</strong></p>
<form name="form1" method="post" action="add1.jsp" >
<table width="100%" border="0" class="L13">
<tr>
<td width="9%" height="18"><p>姓 名:</p></td>
<td width="91%"><input name="name" type="text" id="name" value="<%=rst.getString("name")%>" size="15"></td>
</tr>
<tr>
<%
String sex=rst.getString("sex");
%>
<td>性 别:</td>
<td><input name="sex" type="radio" value="男" <% if (sex=="男"){%>checked<%}%>>
男
<input type="radio" name="sex" value="女" <% if(sex=="女"){%>checked<%}%>>
女</td>
</tr>
<tr>
<%
int birth_y=rst.getInt("birth_y");
int birth_m=rst.getInt("birth_m");
int birth_d=rst.getInt("birth_d");
%>
<td>出生日期:</td>
<td><select name="birth_y" size="1" id="birth_y">
<%
//显示年
int I;
for(I=1900;I<=2000;I++)
{
%>
<option value="<%=I%>" <% if (birth_y==I){%>selected<%}%>><%=I%></option>
<%
}
%>
</select>
年
<select name="birth_m" size="1" id="birth_m">
<%
//显示月
for(I=1;I<=12;I++)
{
%>
<option value="<%=I%>" <% if (birth_m==I){%>selected<%}%>><%=I%></option>
<%
}
%>
</select>
月
<select name="birth_d" size="1" id="birth_d">
<%
//显示日
for(I=1;I<=30;I++)
{
%>
<option value="<%=I%>"<% if (birth_d==I) {%> selected <%}%>><%=I%></option>
<%
}
%>
</select>
日 </td>
</tr>
<tr>
<td>所属部门:</td>
<td>
<select name="department" size="1" id="department">
<%
int department=rst.getInt("department");
%>
<%
//读取部门信息显示到下拉选单
ResultSet rs=stmt.executeQuery("select * from department");
while(rs.next())
{
String department_name=rs.getString("department_name");
int department_code=rs.getInt("department_code");
%>
<option value="<%=department_code%>"<%if(department==department_code){ %>selected<% }%>><%=department_name%></option>
<%
}
%>
</select>
</td>
</tr>
<tr>
<td>学 历:</td>
<td><input name="xueli" type="text" id="xueli" value="<%=rst.getString("xueli")%>" size="15"></td>
</tr>
<tr>
<td>电 话:</td>
<td><input name="tel" type="text" id="tel" value="<%=rst.getString("tel")%>" size="15"></td>
</tr>
<tr>
<td>移动电话:</td>
<td><input name="mobile" type="text" id="mobile" value="<%=rst.getString("mobile")%>" size="15"></td>
</tr>
<tr>
<td>传 呼:</td>
<td><input name="bp" type="text" id="bp" value="<%=rst.getString("bp")%>" size="15"></td>
</tr>
<tr>
<td>E--MAIL:</td>
<td><input name="email" type="text" id="email" value="<%=rst.getString("email")%>" size="20"></td>
</tr>
<tr>
<td height="151">简 历:</td>
<td><textarea name="intro" cols="50" rows="10" id="intro"><%=rst.getString("intro")%></textarea></td>
</tr>
<tr>
<td> </td>
<td><input name="b1" type="submit" id="b1" value="提交">
<input name="b2" type="reset" id="b2" value="重置"></td>
</tr>
</table>
</form>
<%
}
stmt.close();
conn.close();
%>
<p> </p>
</body>
</html>
问题点数:0、回复次数:6Top
1 楼znef88(张宁)回复于 2003-09-04 16:48:23 得分 0
错误信息:
<option value="12"><h1>Error: 500</h1>
<h2>Location: /member_info/admin/modify_1.jsp</h2><b>Internal Servlet Error:</b><br><pre>javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Column index 24 is out of range.
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:461)
at member_0005finfo.admin._0002fmember_0005finfo_0002fadmin_0002fmodify_0005f_00031_0002ejspmodify_0005f1_jsp_26._jspService(_0002fmember_0005finfo_0002fadmin_0002fmodify_0005f_00031_0002ejspmodify_0005f1_jsp_26.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)
</pre>
<b>Root cause:</b>
<pre>java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Column index 24 is out of range.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at member_0005finfo.admin._0002fmember_0005finfo_0002fadmin_0002fmodify_0005f_00031_0002ejspmodify_0005f1_jsp_26._jspService(_0002fmember_0005finfo_0002fadmin_0002fmodify_0005f_00031_0002ejspmodify_0005f1_jsp_26.java, Compiled Code)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspCountedServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java, Compiled Code)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code)
at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.Handler.service(Handler.java, Compiled Code)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java, Compiled Code)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java, Compiled Code)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java, Compiled Code)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java, Compiled Code)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java, Compiled Code)
at java.lang.Thread.run(Thread.java:479)
</pre>
Top
2 楼noratong(吴雨)回复于 2003-09-04 17:01:33 得分 0
是不是你的列弄错了,你在仔细检查一下。因为错误信息是说你的列超出了范围。Top
3 楼znef88(张宁)回复于 2003-09-04 17:07:44 得分 0
不是列的问题,错误主要在部门:应该怎么写?
<tr>
<td>所属部门:</td>
<td>
<select name="department" size="1" id="department">
<%
int department=rst.getInt("department");
%>
<%
//读取部门信息显示到下拉选单
ResultSet rs=stmt.executeQuery("select * from department");
while(rs.next())
{
String department_name=rs.getString("department_name");
int department_code=rs.getInt("department_code");
%>
<option value="<%=department_code%>"<%if(department==department_code){ %>selected<% }%>><%=department_name%></option>
<%
}
%>
</select>
</td>
</tr>
Top
4 楼jscsqb(大漠沙如雪)回复于 2003-09-04 17:42:43 得分 0
int department=rst.getInt("department");
~~~~~~~~~~~~~~~~~~
ResultSet rs=stmt.executeQuery("select * from department");
~~~~~~~~~~~~~~~~~~~~~
整形的department是做什么用的?
Top
5 楼znef88(张宁)回复于 2003-09-05 09:45:17 得分 0
是部门表Top
6 楼jscsqb(大漠沙如雪)回复于 2003-09-22 19:23:19 得分 0
int department=rst.getInt("department");
~~~~~~~~~~~~~~~~~~
ResultSet rs=stmt.executeQuery("select * from department");
~~~~~~~~~~~~~~~~~~~~~
这三个department应该代表不同的东东
取三个不同的名字吧
这样的编程习惯可不太好Top




