首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

小弟我碰到一个很菜的有关问题,但是就是看不出那里错了

2012-01-20 
我碰到一个很菜的问题,但是就是看不出那里错了//主程序开始////////////////////////////////////////////

我碰到一个很菜的问题,但是就是看不出那里错了
//主程序开始/////////////////////////////////////////////////
i=0;
str_sbody= " ";
//初始化结束
                ds=obj.oleds( "select   *   from   class   order   by   id   desc ",0,0, "class ");
for(i=0;i <=ds.Tables[ "class "].Rows.Count-1;i+=1)
{
str_sbody=str_sbody+ " <table   cellpadding=6   cellspacing=0   width=100%   align=center     bordercolor=#0099cc   border=1> ";
str_sbody=str_sbody+ " <TR> <TD   bgColor=#e8f4ff   colSpan=6> <font   color=#000000> <B> "+ds.Tables[ "class "].Rows[i][ "class "].ToString()+ " </B> </font> </TD> </TR> ";

//版面信息
mycommand=new   OleDbCommand( "select   *   from   board   where   class= "+ds.Tables[ "class "].Rows[i][ "id "].ToString()+ " ",obj.link);
rs=mycommand.ExecuteReader();
while(rs.Read())
{
str_sbody=str_sbody+ " <TR> <TD   vAlign=top   width=*   bgColor=#f2f8ff> <font   color=#000000> ";
if(rs[ "icon "].ToString()!= " "&&rs[ "icon "].ToString()!=null)
{str_sbody=str_sbody+ " <img   src=icon/ "+rs[ "icon "].ToString()+ ".gif   board=0> ";
}
str_sbody=str_sbody+ " <a   href=list.aspx?boardid= "+rs[ "boardid "].ToString()+ "> <font   color=#000066> "+rs[ "boardtype "]+ " </font> </a> <div   align=right   valign=top> <a   href=announce.aspx?boardid= "+rs[ "boardid "].ToString()+ "   title=快速发表主题> <img   src=images/fpost2.gif   border=0> </a> </div> ";
switch(rs[ "boardskin "].ToString())
{
case   "2 ":str_sbody=str_sbody+ " <font   color=gray> 精华论坛(普通用户不能发帖) </font> ";
break;
case   "3 ":
str_sbody=str_sbody+ " <font   color=gray> 正规论坛(只准会员进入) </font> ";
break;
case   "4 ":
str_sbody=str_sbody+ " <font   color=gray> 认证论坛(必须经过认证) </font> ";
break;
}
str_sbody=str_sbody+ " <br> "+Server.HtmlEncode(rs[ "readme "].ToString())+ " </font> </TD> ";
str_sbody=str_sbody+ " <TD   vAlign=center   align=middle   bgColor=#e8f4ff   width=80> ";
str_sbody=str_sbody+ " <img   src= "+rs[ "indexIMG "].ToString()+ "   board=0> <br> "+master(rs[ "BoardMaster "].ToString());
str_sbody=str_sbody+ " </TD> <TD   vAlign=center   noWrap   align=middle   width=25   bgColor=#e8f4ff> <font   color=#000000> "+rs[ "lasttopicnum "].ToString()+ "/ "+rs[ "todaynum "].ToString()+ " </font> </TD> ";
str_sbody=str_sbody+ " <TD   noWrap   width=250   bgColor=#e8f4ff> <font   color=#000000> 主题: ";

//列出最后的五编文章
OleDbCommand   cmd2=new   OleDbCommand( "select   *   from   bbs1   where   boardid= "+rs[ "boardid "].ToString()+ " ",obj.link);
rs2=cmd2.ExecuteReader();       *****到了这里就提示datareader已经打开,必须关闭
while(rs2.Read())


{str_sbody=str_sbody+ " <IMG   border=0   src=images/arrow1.gif> "+rs2[ "topic "].ToString()+ "   "+rs2[ "dateandtime "].ToString()+ "... <br> ";

}
str_sbody=str_sbody+ " <a   href=#   target=_blank> 更多.. </a>   ";
rs2.Close();

str_sbody=str_sbody+ " </font> </TD> ";

//str_sbody=str_sbody+ " <a   href= "+rs[ "filepath "].ToString()+ "   target=_blank> "+rs[ "lasttopic "].ToString()+ "... </a> <br> ";
//str_sbody=str_sbody+ "   最新发表: <a   href=userdetail.aspx?username= "+rs[ "lastpostuser "].ToString()+ "   target=_blank> "+rs[ "lastpostuser "].ToString()+ " </a> <IMG   border=0   src=images/lastpost.gif> <br> ";
//str_sbody=str_sbody+rs[ "lastposttime "].ToString()+ " </font> </TD> ";

str_sbody=str_sbody+ " <TD   vAlign=center   noWrap   align=middle   width=25   bgColor=#f2f8ff> ";
str_sbody=str_sbody+ " <A   href=javascript:window.external.AddFavorite( ' "+obj.bbsurl+ "/list.aspx?boardid= "+rs[ "boardid "].ToString()+ " ', ' "+obj.bbsname+ "-- "+rs[ "boardtype "].ToString()+ "( "+obj.bbsurl+ ") ')   target=_self> <img   src=images/fav.gif   border=0> </A> </TD> </TR> ";
}
str_sbody=str_sbody+ " </table> ";
rs.Close();
}//结束for
main.InnerHtml+=str_sbody;  


本人刚学不久,还请各位大虾指点。


[解决办法]
也不说错误信息,而且看似ASP的,代码和界面混在一起,你叫别人怎么给你看?
[解决办法]
代码写的乱七八糟.改变算法!!!
不要把ASP的老思想用来写ASP.NET.
用数据绑定控件不是更好????干嘛还读一条数据,写一行HTML代码,累不累呀.
直接绑定,易懂也不容易出错.
[解决办法]
这个是asp.net的代码吗?
为什么要这样写? 头大
[解决办法]
异常详细信息: System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首先
================


CSDN - 专家门诊 - .NET技术 ASP.NET问题
回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 关闭窗口
主  题: 我碰到一个很菜的问题,但是就是看不出那里错了
作  者: zhangzhicong ()
等  级:
信 誉 值: 100
所属论坛: .NET技术 ASP.NET
问题点数: 20
回复次数: 5
发表时间: 2007-9-9 12:23:39



//主程序开始/////////////////////////////////////////////////
i=0;
str_sbody= " ";
//初始化结束
ds=obj.oleds( "select * from class order by id desc ",0,0, "class ");
for(i=0;i <=ds.Tables[ "class "].Rows.Count-1;i+=1)
{
str_sbody=str_sbody+ " <table cellpadding=6 cellspacing=0 width=100% align=center bordercolor=#0099cc border=1> ";
str_sbody=str_sbody+ " <TR> <TD bgColor=#e8f4ff colSpan=6> <font color=#000000> <B> "+ds.Tables[ "class "].Rows[i][ "class "].ToString()+ " </B> </font> </TD> </TR> ";

//版面信息
mycommand=new OleDbCommand( "select * from board where class= "+ds.Tables[ "class "].Rows[i][ "id "].ToString()+ " ",obj.link);
rs=mycommand.ExecuteReader();
while(rs.Read())
{
str_sbody=str_sbody+ " <TR> <TD vAlign=top width=* bgColor=#f2f8ff> <font color=#000000> ";


if(rs[ "icon "].ToString()!= " "&&rs[ "icon "].ToString()!=null)
{str_sbody=str_sbody+ " <img src=icon/ "+rs[ "icon "].ToString()+ ".gif board=0> ";
}
str_sbody=str_sbody+ " <a href=list.aspx?boardid= "+rs[ "boardid "].ToString()+ "> <font color=#000066> "+rs[ "boardtype "]+ " </font> </a> <div align=right valign=top> <a href=announce.aspx?boardid= "+rs[ "boardid "].ToString()+ " title=快速发表主题> <img src=images/fpost2.gif border=0> </a> </div> ";
switch(rs[ "boardskin "].ToString())
{
case "2 ":str_sbody=str_sbody+ " <font color=gray> 精华论坛(普通用户不能发帖) </font> ";
break;
case "3 ":
str_sbody=str_sbody+ " <font color=gray> 正规论坛(只准会员进入) </font> ";
break;
case "4 ":
str_sbody=str_sbody+ " <font color=gray> 认证论坛(必须经过认证) </font> ";
break;
}
str_sbody=str_sbody+ " <br/> "+Server.HtmlEncode(rs[ "readme "].ToString())+ " </font> </TD> ";
str_sbody=str_sbody+ " <TD vAlign=center align=middle bgColor=#e8f4ff width=80> ";
str_sbody=str_sbody+ " <img src= "+rs[ "indexIMG "].ToString()+ " board=0> <br/> "+master(rs[ "BoardMaster "].ToString());
str_sbody=str_sbody+ " </TD> <TD vAlign=center noWrap align=middle width=25 bgColor=#e8f4ff> <font color=#000000> "+rs[ "lasttopicnum "].ToString()+ "/ "+rs[ "todaynum "].ToString()+ " </font> </TD> ";
str_sbody=str_sbody+ " <TD noWrap width=250 bgColor=#e8f4ff> <font color=#000000> 主题: ";

//列出最后的五编文章
OleDbCommand cmd2=new OleDbCommand( "select * from bbs1 where boardid= "+rs[ "boardid "].ToString()+ " ",obj.link);
rs2=cmd2.ExecuteReader(); *****到了这里就提示datareader已经打开,必须关闭
while(rs2.Read())
{str_sbody=str_sbody+ " <IMG border=0 src=images/arrow1.gif> "+rs2[ "topic "].ToString()+ " "+rs2[ "dateandtime "].ToString()+ "... <br/> ";

}
str_sbody=str_sbody+ " <a href=# target=_blank> 更多.. </a> ";
rs2.Close();

str_sbody=str_sbody+ " </font> </TD> ";

//str_sbody=str_sbody+ " <a href= "+rs[ "filepath "].ToString()+ " target=_blank> "+rs[ "lasttopic "].ToString()+ "... </a> <br/> ";
//str_sbody=str_sbody+ " 最新发表: <a href=userdetail.aspx?username= "+rs[ "lastpostuser "].ToString()+ " target=_blank> "+rs[ "lastpostuser "].ToString()+ " </a> <IMG border=0 src=images/lastpost.gif> <br/> ";
//str_sbody=str_sbody+rs[ "lastposttime "].ToString()+ " </font> </TD> ";

str_sbody=str_sbody+ " <TD vAlign=center noWrap align=middle width=25 bgColor=#f2f8ff> ";
str_sbody=str_sbody+ " <A href=javascript:window.external.AddFavorite( ' "+obj.bbsurl+ "/list.aspx?boardid = "+rs[ "boardid "].ToString()+ " ', ' "+obj.bbsname+ "-- "+rs[ "boardtype "].ToString ()+ "( "+obj.bbsurl+ ") ') target=_self> <img src=images/fav.gif border=0> </A> </TD> </TR> ";
}
str_sbody=str_sbody+ " </table> ";
rs.Close();
}//结束for
main.InnerHtml+=str_sbody;


本人刚学不久,还请各位大虾指点。

回复人:zhangzhicong() ( 一级(初级)) 信誉:100 2007-9-9 12:30:40 得分:0


?

没有人顶,自己顶一下
Top
回复人:gui0605(技术诚可贵,英语价更高;若为金钱故,二着皆可抛!(誓把英语当方言)) ( 五级(中级)) 信誉:100 2007-9-9 12:36:25 得分:0
?

也不说错误信息,而且看似ASP的,代码和界面混在一起,你叫别人怎么给你看?
Top
回复人:zhangzhicong() ( 一级(初级)) 信誉:100 2007-9-9 12:42:53 得分:0
?

真不好意思,其实是这样的。
已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首先将它关闭。

源错误:


行 144:OleDbCommand cmd2=new OleDbCommand( "select * from bbs1 where boardid= "+rs[ "boardid "].ToString()+ " ",obj.link);
rs.close();//这里先把DataReader关闭了
行 145:rs2=cmd2.ExecuteReader();
行 146:while(rs2.Read())
行 147:{

热点排行
Bad Request.