讨论数据库连接-释放资源的问题!

svcce 2011-12-19 11:15:23
大量的数据库访问会造成大量的资源占用!
在此想知道,我新建一个类后,存放一系列的方法,这些方法会被反反复复的使用!
如果我不释放资源的话.会造成大量的造成资源的占用吗?
开始的时候,我是没有添加
cmd.Dispose();
这句代码的,后来想了想,还是加了下,在此为了解开我心中的谜团,在此询问各位前辈们.!
如果不添加cmd.Dispose();这句代码会不会造成大量的资源占用呢?
还有就是,在什么情况下使用Dispose();,在什么时候不使用Dispose();会比较好!


public static int ExecNon(string sql, params SqlParameter[] values)
{
SqlCommand cmd = new SqlCommand(sql, Sqlconn);
cmd.Parameters.AddRange(values);
return cmd.ExecuteNonQuery();
cmd.Dispose();
}


在调用返回DataTable的方法时候一样new了一个dt
DataTable dt = DB.GetDataSet(strsql, sp);

请问调用后获得后需要dispose()吗?
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
svcce 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sp1234 的回复:]
该调用dispose的时候,就要注意调用dispose(主要是注意使用using)。但是没有必要调用dispose的时候,调用它反而是一种浪费,你为什么不交给GC去调用呢?

其实关键是你要知道所谓dispose中到底“释放”了什么资源?如果不知道,最好不要胡乱判断该还是不该调用dispose。比如说你调用SqlCommand类型对象的dispose,你到底想“释放”什么资源呢?你能说出来么?……
[/Quote]

谢谢!
  • 打赏
  • 举报
回复
你所写的所有东西,我一个也没有看出来有什么必要调用dispose!关键不是结果,而是我要告诉你过程,你自己学会判断。


实际上常用地,当被SqlDataReader使用的SqlConnection才需要尽量及时调用其Dispose。另外有些情况下对于FileStream也可能需要。所有这些都是因为并发很高、很快,如果不及时调用那么就会使得程序崩溃。

而并不是因为现在的电脑都是80286时代的电脑——没有高级的垃圾回收机制所以必须自己手动提前释放什么资源。
svcce 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sp1234 的回复:]
什么资源,你倒是说说看。不要不知道资源具体是什么,就随便套用。

只所有有“对象”这种东西,不是为了故意“占用资源”来给你骂的。对象一定有它的道理,要不为什么现在几乎所有的编程语言都是OOPL语言呢。
[/Quote]
.........
我没有骂嘛!

我只是不知道,不理解所以才上来问的!

我也有问他怎么使用才更好!
  • 打赏
  • 举报
回复
该调用dispose的时候,就要注意调用dispose(主要是注意使用using)。但是没有必要调用dispose的时候,调用它反而是一种浪费,你为什么不交给GC去调用呢?

其实关键是你要知道所谓dispose中到底“释放”了什么资源?如果不知道,最好不要胡乱判断该还是不该调用dispose。比如说你调用SqlCommand类型对象的dispose,你到底想“释放”什么资源呢?你能说出来么?
阿非 2011-12-19
  • 打赏
  • 举报
回复
return cmd.ExecuteNonQuery();
cmd.Dispose();

cmd.Dispose(); 不会被执行
  • 打赏
  • 举报
回复
什么资源,你倒是说说看。不要不知道资源具体是什么,就随便套用。

只所有有“对象”这种东西,不是为了故意“占用资源”来给你骂的。对象一定有它的道理,要不为什么现在几乎所有的编程语言都是OOPL语言呢。

62,046

社区成员

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

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

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

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