日期:2014-05-18  浏览次数:20696 次

请大家帮忙看看显示代码有什么问题
bean部分代码如下:
public Vector getData(String sql)
  {
  Vector vect=new Vector();
  try
  { Connection conn=ConnBean.getConnection();
  PreparedStatement pstmt=conn.prepareStatement(sql);
  ResultSet rs=pstmt.executeQuery();
  ResultSetMetaData rsmd=rs.getMetaData();
  int cols=rsmd.getColumnCount();
  while(rs.next())
  {
  Hashtable hash=new Hashtable();
  for(int i=1;i<=cols;i++)
  {
  String field=rsmd.getColumnClassName(i);
  String value=rs.getString(i);
  hash.put(field,value);
  }
  vect.add(hash);
  }
  }catch(SQLException sqle){}
  return vect;
  }


jsp部分页面如下:
<%
String sql="select * from book";
Vector vect=(Vector)editBook.getData(sql);
for(int i=1;i<vect.size();i++)
{
Hashtable hash=(Hashtable)vect.get(i);
String[] str=new String[4];
  str[0]=(String)hash.get("bookId");
str[1]=(String)hash.get("bookName");
str[2]=(String)hash.get("publisher");
str[3]=(String)hash.get("price");
%>
<TABLE width="100%" align="center" border=1 brcolor=99ccff cellspacing="0" cellpadding="0" bordercolordark="#000000" bordercolorlight="#CCCC99">
<tr><td bgcolor="#CCCC99"><font size=2>id:</font></td>
<td colspan=3><%=str[0]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>name:</font></td>
<td><%=str[1]%></td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>pb:</font></td>
<td>
<%=str[2]%>
</td></tr>
<tr><td bgcolor="#CCCC99"><font size=2>price:</font></td><td colspan=3>
<%=str[3]%>
</td></tr>
</table>
<%
}
%>


显示结果老是NULL,请问问题是处在哪里啊,谢谢了


------解决方案--------------------
晕,你单步调试一下,看你的bean里
String value=rs.getString(i); 
这里取到值没?sql用select * from book的时候
------解决方案--------------------
for(int i=1;i <vect.size();i++)
这里的i的初始值是否要从0开始呀,再试试
------解决方案--------------------
楼主你先确认下,从数据库中查到的记录是否为空,另外纠正下10楼,楼主从1开始是对的
------解决方案--------------------
顶一下吧...
------解决方案--------------------
报的什么异常啊?怎么不把异常贴出来
------解决方案--------------------
for(int i=1;i <vect.size();i++) 
=》
for(int i=0;i <vect.size();i++) 


还有,你确认你的字段是正确的???

String field=rsmd.getColumnClassName(i); 
System.out.println("field="+field); // 打印出来看看吧!
String value=rs.getString(i);