调试下面代码时出现‘阅读器关闭时尝试调用 FieldCount 无效’是哪出了问题?

天地乐逍遥 2009-11-24 08:32:38


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GridView1.DataSource =GetTopics();
this.GridView1.DataBind();
}
}
private SqlDataReader GetTopics()
{
SqlDataReader dr = null;
using (SqlConnection conn = new SqlConnection(strconn))
{
try
{
conn.Open();
SqlCommand comm = conn.CreateCommand();
comm.CommandText = "select * from Topics";
dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (SqlException ex)
{
throw new Exception(ex.Message, ex);
}
finally
{
conn.Close();
}
}
return dr;
}
...全文
600 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
扬帆一号 2011-04-29
  • 打赏
  • 举报
回复
去掉using 和conn.close()就可以了。我刚才也是出线类似的问题了。
wcl2222 2010-01-27
  • 打赏
  • 举报
回复
LS,你是怎么搞掂的
天地乐逍遥 2009-11-25
  • 打赏
  • 举报
回复
我后来 调试了一下,用using的确不行,不过现在搞定了,多谢了,呵呵!!!
qishichang 2009-11-24
  • 打赏
  • 举报
回复
你要返回SqlDataReader,可你finally中 conn.close(),你是用了using 还写conn.close()?
在这个方法中不能使用using, SqlConnection 会被垃圾回收,GridView绑定SqlDataReader时,需要SqlConnection 。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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