jsp访问数据库问题(在线等待答案谢谢)
db是自写的一个访问数据库的javaBean,通过测试使用没问题,并且数据库中的字段都存在,访问的是SQLSever数据库,抛出异常java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
<jsp:useBean id="db" scope="page" class="db.DBConn"/>
<%try{
db.createStatement();
String sql="select top 5 WriteTime a,Topic,Content from t_publicinfo";
ResultSet rs=db.executeQuery(sql);
System.out.println(sql);
while (rs.next())
{
out.print("<td height=25 bgcolor=#F0F0F0><font color=#808080>"+rs.getString("Topic")+"</font></td>");
out.print("<td height=25 bgcolor=#F0F0F0><font color=#808080>"+rs.getString("Content")+"</font></td>");
out.print("<td align=center height=25 bgcolor=#F0F0F0><font color=#808080>"+rs.getString("a")+"</font></td>");
out.print("</font></td></tr>");
}
db.close();
}catch(SQLException e)
{out.print(e.toString());}
%>
但是把rs.getString("WriteTime")屏蔽掉就不出问题了,writetime是时间类型的字段
问题点数:50、回复次数:14Top
1 楼wanggouzi(蚂蚁)回复于 2002-07-08 13:51:30 得分 0
upTop
2 楼xmvigour(微电-THINKING IN APP)回复于 2002-07-08 13:55:03 得分 0
rs.getString("WriteTime")
换成rs.getString(1)试试看!
还有 那个WriteTime在数据库里是不是null?Top
3 楼wanggouzi(蚂蚁)回复于 2002-07-08 13:56:47 得分 0
:( 试了还是不行,不是nullTop
4 楼qxjavajava(射手座 =--->静静看那流光飞舞)回复于 2002-07-08 13:57:43 得分 10
在sql的类型(TIME),转变成java类型应该用java.sql.Time
类型转换.Top
5 楼zhangbin_zhang(cat)回复于 2002-07-08 13:59:23 得分 0
Date date=rs.getDate("WriteTime");
试试看。
Top
6 楼qxjavajava(射手座 =--->静静看那流光飞舞)回复于 2002-07-08 13:59:54 得分 0
sql中的time类型,应该用java.sql.Time类去类型转化吧。Top
7 楼wanggouzi(蚂蚁)回复于 2002-07-08 14:00:07 得分 0
不是null,刚该了,试了,还是不行,是不是和字段是时间有关系,在数据库里面writetime是datetime类型Top
8 楼qxjavajava(射手座 =--->静静看那流光飞舞)回复于 2002-07-08 14:01:38 得分 0
sql的time类型,应该用java.sql.Time类进行类型转化吧。Top
9 楼zhangbin_zhang(cat)回复于 2002-07-08 14:01:38 得分 0
java.sql.Date date=rs.getDate("WriteTime");
试试看。Top
10 楼zhangbin_zhang(cat)回复于 2002-07-08 14:02:57 得分 0
Date date=rs.getDate("WriteTime");
试试看。
Top
11 楼xmvigour(微电-THINKING IN APP)回复于 2002-07-08 14:04:45 得分 10
select top 5 WriteTime a,Topic,Content from t_publicinfo
把记录打印出来看看
然后用数字比较好rs.getString(1),rs.getString(2),……
Top
12 楼xmvigour(微电-THINKING IN APP)回复于 2002-07-08 14:07:16 得分 0
select top 5 WriteTime a,Topic,Content from t_publicinfo
把记录打印出来看看
然后用数字比较好rs.getString(1),rs.getString(2),……Top
13 楼zhangbin_zhang(cat)回复于 2002-07-08 14:08:03 得分 0
java.sql.Time writetime=rs.getTime("WriteTime");
应该对了吧。
CSDN又出问题了,我只回复了一次怎么出来这么多??Top
14 楼wanggouzi(蚂蚁)回复于 2002-07-08 14:17:29 得分 0
是呀我也觉得奇怪,我刚才都试了,都可以date,time都行不过出现了又一个问题,我是这样写的
Date d=rs.getDate("WriteTime");
String s=d.toString();
out.print(s);
这样会显示正确时间
但是下面这样会继续报错,和原来的错误一样javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
out.print(rs.getDate("WriteTime").toString());Top
15 楼zhangbin_zhang(cat)回复于 2002-07-08 14:23:35 得分 0
难道真的是"WriteTime"出问题了?
试了换成rs.getDate(1),rs.getDate(2)........了吗?Top
16 楼wanggouzi(蚂蚁)回复于 2002-07-08 14:26:12 得分 0
用getDate(1)或者getTime(1)都行,都成功了但是书写形式不一样它也报错
Date d=rs.getDate("WriteTime");
String s=d.toString();
out.print(s);
这样会显示正确时间
但是下面这样会继续报错,和原来的错误一样javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver]无效的描述符索引
out.print(rs.getDate("WriteTime").toString());
Top
17 楼zhangbin_zhang(cat)回复于 2002-07-08 14:32:36 得分 30
你是不是将调试用的
Date d=rs.getDate("WriteTime");
String s=d.toString();
out.print(s);
和你的jsp写到了一起了?
要把凋试用的东西删了。
一个rs不能get两次。
Top
18 楼wanggouzi(蚂蚁)回复于 2002-07-08 15:56:48 得分 0
是呀,呵呵,我get了两次,那该怎么办,我想显示时间日期应该怎么写,问题有点幼稚,见笑了,刚才因为网断了,所以没上的来Top
19 楼amy_jiang(jiangjiang)回复于 2002-07-08 16:03:37 得分 0
用rs.getTimestamp可以吗Top
20 楼wanggouzi(蚂蚁)回复于 2002-07-08 16:08:36 得分 0
呵呵,是get了两次,谢谢大家Top




