wo 发现只要加上ResultSet rs_boardinfo = workM.executeQuery(sql);这段 就报java.lang.StringIndexOutOfBoundsException: String index out of range: -1 错误如果把ResultSet rs_boardinfo = workM.executeQuery(sql);去掉就没有问题了,是不是数据库中的数据在放到ResultSet rs_boardinfo 中的时候有什么限制。楼上所说的检查substring()地方我试过了,把substring全都去掉,还是报同样的错.
<%@ page language="java" import="java.sql.*" %>
<%@ include file = "Translate/codechange.jsp" %><html><script language="JavaScript"></script></html><html>
<head>
<%!
String sql = null;
%>
<title>福建旅游论坛</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" width="99%" align="center">
<tr><td bgcolor="#009ACE"> <tr>
<td width="734" class="tablerow" colspan="7" bgcolor="#FFFFFF" height="16">
<table border="0" cellspacing="0" width="100%" cellpadding="0">
<tr>
<td width="12%"><font color="#333399"><b><img src="image/gb.gif" width="21" height="14">论坛公告:</b></font></td>
<td width="88%"> <marquee width="648" height="12" direction="left">
</marquee> </td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#9CCFFF">
<td width="15" height="14"> </td>
<td width="247" height="14" bgcolor="#9CCFFF">论坛列表</td>
<td width="28" align="center" height="14">新窗</td>
<td width="58" align="center" height="14">主题数量</td>
<td width="57" align="center" height="14">贴子数量 </td>
<td width="170" align="center" height="14">最后回复</td>
<td width="63" align="center" height="14">版主</td>
</tr>
<%/////////////////////////////////////////////////////////////////////%>
<%
opendb.OpenDb workM = new opendb.OpenDb();
sql="SELECT * FROM 论坛栏目"; ResultSet rs_boardinfo = workM.executeQuery(sql);
while (rs_boardinfo.next())
{
String Time_Str=rs_boardinfo.getString("最后发表时间");
String Man_Str=rs_boardinfo.getString("最后发表人");
String Forum_id=rs_boardinfo.getString("论坛id");
String Forum_Mastor=rs_boardinfo.getString("版主姓名");
if (Man_Str==null)
Man_Str="无";
else
Man_Str="<a href='member.jsp?member="+Man_Str+"'>"+Man_Str+"</a>";
if ((Forum_Mastor==null)||(Forum_Mastor.equals("")))
Forum_Mastor="招骋中...";
else
Forum_Mastor="<a href=member.jsp?member="+Forum_Mastor+">"+Forum_Mastor+"</a>";
%>
<tr bgcolor="#F7FBFF">
<td align="center" height="26" width="15"><img src="image/folder.gif" width="13" height="16"></td>
<td height="26" width="247" bgcolor="#F7FBFF"><a href="board.jsp?fid=<%=Forum_id%>"> <%=rs_boardinfo.getString("论坛名称")%> </a>
<br />
</td>
<td align="center" height="26" width="28"> <a href="board.jsp?fid=<%=Forum_id%>" target="_blank"><img border="0" src="image/newwin.gif" width="14" height="11"></a></td>
<td align="center" height="26" width="58"><%=rs_boardinfo.getString("主题数量")%></td>
<td align="center" height="26" width="57"><%=rs_boardinfo.getString("贴子数量")%></td>
<td height="26" width="170">时间:<%=Time_Str.substring(0,16)%><br>
作者:<%=Man_Str%></a></td>
<td align="center" height="26" width="63"><%=Forum_Mastor%></td>
</tr>
<%
}
%>
就报java.lang.StringIndexOutOfBoundsException: String index out of range: -1 错误如果把ResultSet rs_boardinfo = workM.executeQuery(sql);去掉就没有问题了,是不是数据库中的数据在放到ResultSet rs_boardinfo 中的时候有什么限制。楼上所说的检查substring()地方我试过了,把substring全都去掉,还是报同样的错.
论坛名称 varchar 50 1
创建时间 datetime 8 1
版主姓名 char 10 1
版主密码 char 10 1
贴子数量 bigint 8 1
主题数量 bigint 8 1
最后发表人 char 50 1
最后发表时间 datetime 8 1
1 维权论坛 2004-10-09 14:19:41.860 张湖 122 12 233 dd
2004-10-09 14:19:41.860
2 时事纵横 2004-10-09 14:19:45.733 罗胜 34 23 23 dd 2004-10-09 14:19:45.733
看错误你
try{
... ...
}catch(Exception e){
e.printStackTrace();
}
这样可以看见错误的抛出点...
你把ResultSet rs_boardinfo = workM.executeQuery(sql);
改成:
ResultSet rs_boardinfo = null;
try{
rs_boardinfo = workM.executeQuery(sql);
}catch(Exception e){
e.printStackTrace();
}
这样试试看,能不能捕获到真正的错误源!