这样获得DataReader合理吗?请各位大哥帮我看看~

xiaomaolover 2004-07-05 10:05:46
public SqlDataReader GetDataReader(string str_Sql)
{
Open();
SqlCommand cmd = new SqlCommand(str_Sql,cn);
SqlDataReader dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return dataReader;
}


这样DataReader关闭了吗?Connection关闭了吗?
如果用了好多这个。会不会很慢?
请各位大哥帮我看看~
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wy_rover 2004-07-05
  • 打赏
  • 举报
回复
但返回DataReader读了之后,一定要Close(), 这样Connection才会Close
活靶子哥哥 2004-07-05
  • 打赏
  • 举报
回复
PetShop中是这样的
public void RunProc(string procName, out SqlDataReader dataReader)
{
SqlCommand cmd = CreateCommand(procName, null);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
heroman1979 2004-07-05
  • 打赏
  • 举报
回复
实际上,这种情况我觉得用DATASET生成DATAVIEW比较好,因为DATAREADER是非连接式的,他只是提供了一个命令通道,本身不保存命令产生的数据,所以,当连接关闭后,也就不能访问DATAREADER了,换句话来说,以上代码如果使用DATAREADER,那么,连接是不会立刻关闭的
saucer 2004-07-05
  • 打赏
  • 举报
回复
it looks ok

>>这样DataReader关闭了吗?

no

>>Connection关闭了吗?

no

>>如果用了好多这个

make sure you call DataReader.Close() after you are done with the DataReader, it will automatically close the database connection since you used CommandBehavior.CloseConnection

The general guideline with database connection is, open them as late as possible, and close them as soon as possible

62,046

社区成员

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

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

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

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