<%int num=0;
Vector CustomerID=new Vector();
while(rs.next()){%>
<tr bgcolor="#ffffff" height=20>
<td align=center><%=rs.getString("CustomerID")%></td>
<td align=center><%=rs.getString("CompanyName")%></td>
<td align=center><%=rs.getString("ContactName")%></td>
<td align=center><%=rs.getString("ContactTitle")%></td>
<td align=center><%=rs.getString("Address")%></td>
<td align=center><%=rs.getString("City")%></td>
<td align=center><%=rs.getString("Region")%></td>
<td align=center><%=rs.getString("PostalCode")%></td>
<td align=center><%=rs.getString("Country")%></td>
<td align=center><%=rs.getString("Phone")%></td>
<td align=center><%=rs.getString("Fax")%></td>
<%
String obj=rs.getString("CustomerID");
        CustomerID.add(num,obj);
%>
<td align=center><a href="jsp2.jsp?CustomerID="><%=CustomerID.elementAt(num)%>修改</a></td>
<td align=center><a href="jsp4.jsp">删除</a></td>
</tr>
<%
num++;
}
rs.close();%>
这段代码是用jdbcodbc桥来连接数据库的,目的是想点击“修改”时能将vector中的值返还都指定的jsp页面中,但是运行时报出了错是:
javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
 at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:471)
 at org.apache.jsp.jsp1$jsp._jspService(jsp1$jsp.java:218)
 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
 at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
 at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
 at java.lang.Thread.run(Thread.java:536)
………………
其他的自己肯定没有错,如果是点击"修改“直接连接而不返回值时,一点错都没有!!
求高手解决!
本人jsp初学者,急!!

解决方案 »

  1.   

    <td align=center> <a href="jsp2.jsp?CustomerID="> <%=CustomerID.elementAt(num)%>修改 </a> </td> 
    =》
    <td align=center> <a href="jsp2.jsp?CustomerID="<%=CustomerID.elementAt(num)%>">修改 </a> </td> 
      

  2.   

    数据库连接错误,另外有一行代码传参好象有点错误吧,你看是不是应该写成这样啊
    <td align=center> <a href="jsp2.jsp?CustomerID="+<%=CustomerID.elementAt(num)%>>修改</a> </td>
    还有就是测试一下那个 rs.getString("CustomerID");看到底有没有值?打印一下看看
      

  3.   

    哦,对了连接代码我改了。但是出现了java.lang.NullPointerExceptio异常,就是rsgetString(“CustomerID”);没有得到结果存储在变量里面!谢谢了!
      

  4.   

    不要两次读取同一个字段的值.<%int num=0; 
    Vector CustomerID=new Vector(); 
    while(rs.next()){
    String obj=rs.getString("CustomerID"); //移动这里来
    %> 
    <tr bgcolor="#ffffff" height=20> 
    <td align=center> <%=obj%> </td> //直接使用obj
    <td align=center> <%=rs.getString("CompanyName")%> </td> 
    <td align=center> <%=rs.getString("ContactName")%> </td> 
    <td align=center> <%=rs.getString("ContactTitle")%> </td> 
    <td align=center> <%=rs.getString("Address")%> </td> 
    <td align=center> <%=rs.getString("City")%> </td> 
    <td align=center> <%=rs.getString("Region")%> </td> 
    <td align=center> <%=rs.getString("PostalCode")%> </td> 
    <td align=center> <%=rs.getString("Country")%> </td> 
    <td align=center> <%=rs.getString("Phone")%> </td> 
    <td align=center> <%=rs.getString("Fax")%> </td> 
    <%         CustomerID.add(num,obj); 
    %> 
    <td align=center> <a href="jsp2.jsp?CustomerID="> <%=CustomerID.elementAt(num)%>修改 </a> </td> 
    <td align=center> <a href="jsp4.jsp">删除 </a> </td> 
    </tr> 
    <% 
    num++; 

    rs.close();%>