BUGReport:datagrid带模板列绑定空数据集出错的问题

datagrid带模板列绑定空数据集出错的问题:GridView比DataGrid好的原因之一

BUG描述:datagrid带模板列绑定空数据集时会出错,而同样的代码asp.net 2.0中的GridView不会出错(难到MS已经认识到这一点,所以datagrid也被2.0抛弃了,不过gridview继承自不同的基类,害我改oracle,sqlserver,access的三方万能分页控件好辛苦呀)

Bug存在于 asp.net 1.1 asp.net 2.0

测试工具:vs.net 2003,vs.net 2005,vs.net 2005 sp1,SQLserver


测试过程:
setp1:
//无绑定列,采用自动生成
WebForm1.aspx:
<form id="Form1" method="post" runat="server">
 <asp:DataGrid ID=DataGrid1 runat=server>       
        </asp:DataGrid>
</form>
WebForm1.cs:
private void Page_Load(object sender, System.EventArgs e)
  {
   SqlDataReader Reader2 = DBHelper("select 26 age, 'test' test where 1=0");
   DataGrid1.DataSource = Reader2;
   DataGrid1.DataBind();
   Reader2.Close(); 
  }

  SqlDataReader DBHelper(string sql)
  {
   SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=;database=Northwind");
   SqlCommand cmd = new SqlCommand(sql, conn);
   conn.Open();
   SqlDataReader Reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
   return Reader;
  }
程序执法成功,DataGrid无显示

 

setp2:
//绑定列,采用自动生成
WebForm1.aspx:
<form id="Form1" method="post" runat="server">
  <asp:DataGrid ID=DataGrid1 runat=server>
         <Columns>
          <asp:TemplateColumn>
           <ItemTemplate>
            <asp:CheckBox ID=ck1 runat=server />
           </ItemTemplate>
          </asp:TemplateColumn>
         </Columns>
        </asp:DataGrid>

</form>
WebForm1.cs:
代码不变

程序执行失败,在做DataGrid1.DataBind()时提示
Invalid attempt to Read when reader is closed.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Invalid attempt to Read when reader is closed.

同样在asp.net 2.0里,采用带模板列的GridView(只是把GridView的ID也取名为DataGrid1),后台代码不变,执行成功。
<asp:GridView ID=DataGrid1 runat=server>
        <Columns>
       <asp:TemplateField>
        <ItemTemplate>
           <asp:CheckBox ID=ck1 runat=server />
          </ItemTemplate>
       </asp:TemplateField>
     </Columns>
</asp:GridView>



后记:今天本想去http://www.mscommunity.com/communitywish/ 在线提交BUG的,结果居然发现打开是中华部落阁,不知是MS的这个网站倒闭了还是被恶意抢注了,或是埃塞的DNS解析有问题。以前提交过oracleclient连接的一个问题,在博客园的也写了一下。后来也找到了写这个模块的老外在网上的文章,确认当时写的时候没注意,还提供了一个hotfix。如果这个也算是bug的话,那就是第2个了。^_^0,不过现在非洲,基本什么也访问不了,博客园上不了,csdn上不去,只能写写sohu的blog了。

转载于:https://www.cnblogs.com/tongzhenhua/archive/2007/02/06/642333.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值