把 ExecuteReader 方法写到类里面怎么关闭连接数据库啊?

c02645 2006-02-14 12:52:35
把 ExecuteReader 方法写到类里面
返回的是 SqlDataReader
关闭不了数据库连接
关闭后报错“阅读器关闭时 FieldCount 的尝试无效。”
怎么样才能读完数据后就关闭呢?
...全文
136 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianbin 2006-02-14
  • 打赏
  • 举报
回复
SqlConnection和SqlDataReader是这样的关系,只有当SqlDataReader关闭之后,才可以关闭SqlConnection,如果提前关闭SqlConnection,那么SqlDataReader将不可用。

也就是希望使用完SqlDataReader之后关闭SqlConnection,你可以在原有设计上加入一个参数:

public static SqlDataReader localdata(SqlConnection localcnn , string localsql)
{
// 省略。。。。。
}

在外部调用完成之后对localcnn调用Close方法
c02645 2006-02-14
  • 打赏
  • 举报
回复
代码是这样的
public static SqlDataReader localdata(string localsql)
{
SqlConnection localcnn = new SqlConnection(ConfigurationSettings.AppSettings["localcome"]);
try
{
localcnn.Open();
SqlCommand localcmd=new SqlCommand(localsql,localcnn);
SqlDataReader localdr=localcmd.ExecuteReader(CommandBehavior.CloseConnection);
return localdr;
}
catch (Exception ex)
{
throw (ex);
}
finally
{
//if(localcnn!=null){
// localcnn.Close();}
}
}
c02645 2006-02-14
  • 打赏
  • 举报
回复
我试过,不起作用!
diandian82 2006-02-14
  • 打赏
  • 举报
回复
up
hedongfu 2006-02-14
  • 打赏
  • 举报
回复
ExecuteReader(ConmmandBehavior.CloseConnection)
这样呢,如果你是帮定到DataGrid或DataList就可以

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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