有关SqlDataReader的close问题

wangchengh 2008-03-25 02:26:45
我现在所做的程序用到很多的SqlDataReader, 但我都没调用Close方法,但我在每次用完SqlDataReader都会手动调用SqlConnection.Close方法关闭连接,请问这样还会占用Sql 连接数吗,如果不占用的话那有没有必要每次都调用SqlDataReader.Close()
即每次都使用SqlDataReader.Close();SqlConnection.Close()
...全文
652 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchengh 2008-03-26
  • 打赏
  • 举报
回复
-----Showbo------
SqlDataReader.Close();关闭比较好,你关闭了连接当需要时又打开,浪费时间
---------------------------------------------------------------------
Showbo你这种方法最好别用,如果做网站的话,假设你为每个用户都开一个单独的连接,不关闭,直到用户退出时再关闭的话,那你的网站的连接限制就受到了sql 连接数的制约,而sql server的可用连接数明显比 web server的http连接数要小很多,这样的一旦达到sql连接上线其他所有的用户都全部都连不上你的网站了,所以用数据库连接的话应该是遵循最晚打开,最早关闭的原则。
wangchengh 2008-03-26
  • 打赏
  • 举报
回复
谢谢各位。
lovehongyun 2008-03-25
  • 打赏
  • 举报
回复
养成好的习惯..用完了就把它关了.
lovehongyun 2008-03-25
  • 打赏
  • 举报
回复
datareader也要关..

iamwei20071126 2008-03-25
  • 打赏
  • 举报
回复
其实对在C#中对于数据库操作最好能够建立一个单独的封装类,这样每次在对数据库进行操作时直接调用这个类就行了,可以在里面加上对于sqlconnection和sqldatareader状态的判断,这样也可以省去不少麻烦
  • 打赏
  • 举报
回复
SqlDataReader.Close();关闭比较好,你关闭了连接当需要时又打开,浪费时间
fuda_1985 2008-03-25
  • 打赏
  • 举报
回复
那是肯定的了啊。
打个比方吧:有一个水龙头,使用规则是当水不关闭,水就在不停的浪费,我觉得这东西差不多,你把Connection open了,不关浪费资源,还有,如果水龙头没关,假设你又不知道他没关,你再想用的时候,是不是就打不开了呢。
sbqcel 2008-03-25
  • 打赏
  • 举报
回复
SqlDataReader 是一种只进的流的形式返回SQL SERVER里的行数据.这个当然是基于应用程序对SQL SERVER保持连接的情况下.
如果应用程序对SQL SERVER的连接断开了,SqlDataReader自然也就不可用了.
调用 SqlDataReader.Dispose() 方法才会释放所占的资源.
我认为楼主应该先去看看MSDN上的基础说明.
wangchengh 2008-03-25
  • 打赏
  • 举报
回复
刚才自己又做了一下测试,发现只要关闭相关联的SqlConnection, SqlDataReader回自动关闭。
各位自己也可以做一下,我主要用SqlDataReader.IsClosed的方法查看的,如果你调用SqlConnection.Close();后,SqlDataReader.IsClosed会自动变为true;
wangchengh 2008-03-25
  • 打赏
  • 举报
回复
是不是如果调用了SqlConnection.Close();连接就关闭了,SqlDataReader.Close();只不过是释放内存,另GC会不会自动释放SqlDataReader的内存资源(不是连接资源,因为连接资源已经通过SqlConnection.Close()释放了)
justseven 2008-03-25
  • 打赏
  • 举报
回复
SqlDataReader最好在使用完毕后关闭!!
jinmiwa 2008-03-25
  • 打赏
  • 举报
回复
用完SqlDataReader后要记得关闭,要不会出错的!!
sbqcel 2008-03-25
  • 打赏
  • 举报
回复
调用 SqlConnection.Close() 方法后对数据库的连接就会关闭.
最好还是每次都 SqlDataReader.Close();SqlConnection.Close();

111,125

社区成员

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

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

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