帮忙看看,谢谢咯

realNameeee 2008-07-02 03:49:49

public Collection executeQuery1(String sql) {
BaseDao bd = new BaseDao();
Collection coll = new ArrayList();
System.out.println(sql);
try {
ResultSet rs = bd.executeQuery(sql);

int count = rs.getMetaData().getColumnCount();
System.out.println(count);
String[] fields = new String[count];
for (int i = 0; i < count; i++) {
fields[i] = (String) rs.getMetaData().getColumnName(i + 1);
System.out.println(fields[i]);
}
for (int i = 0; i < count; i++) {
HashMap hash = new HashMap();
for (int ii = 0; ii < count; ii++) {
Object value = null;
if ("DATETIME".equals(rs.getMetaData().getColumnTypeName(ii +
1).toString())) {
value = Tools.toShortTimeString(rs.getString(
fields[ii]));
}
else if("INTEGER".equals(rs.getMetaData().getColumnTypeName(ii +
1).toString())){
value=Integer.parseInt(rs.getString(rs.getInt(fields[ii])));
}
else if("BIT".equals(rs.getMetaData().getColumnTypeName(ii+1).toString())){
value=Boolean.parseBoolean(rs.getString(fields[ii]));
}

else if("CURRENCY".equals(rs.getMetaData().getColumnTypeName(ii+1).toString())){
value=Double.parseDouble(rs.getString(fields[ii]));
}
else {
value = rs.getString(fields[ii]);
}
hash.put(fields[ii], value);
}
coll.add(hash);
System.out.println(i);
if (!rs.next()) {
break;
}
}
} catch (Exception ex) {
System.out.println(ex.toString() + "BaseDb");
} finally {
bd.close();
}
return coll;
}


异常:java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态

无法理解
...全文
80 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
realNameeee 2008-07-02
  • 打赏
  • 举报
回复
ok


分给 黑帽子了
reality 2008-07-02
  • 打赏
  • 举报
回复
ResultSet rs = bd.executeQuery(sql);
只看到这里操作数据库了,你的错误是数据库错误。
是不是sql写的有问题?、
sagezk 2008-07-02
  • 打赏
  • 举报
回复
count 是结果集的列数,不是行数,把
for (int i = 0; i < count; i++)
改成
while (rs.next()) {...}
realNameeee 2008-07-02
  • 打赏
  • 举报
回复
顶,来看看啊


是分 给的少。

哎,没注意,加分还要到明天!!##¥%¥#……%¥&%×……(&×(
realNameeee 2008-07-02
  • 打赏
  • 举报
回复
在线等, 急哦。
realNameeee 2008-07-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pengdayong 的回复:]
尝试使用while来控制循环.相信会有意想不到的效果.
[/Quote]

仁兄,如何来设置条件?
pengdayong 2008-07-02
  • 打赏
  • 举报
回复
尝试使用while来控制循环.相信会有意想不到的效果.

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧