ado.net数据库链接进内存溢出

sun417 2004-08-31 10:25:57
我对数据库操作写了个类,这种方法老是出现内存溢出的情况,知道是打开与关闭数据库的时间不对,但又不知道有什么更好的方法,下面把代码片段写出来请大家指点一下,谢谢!!
class test
{
private SqlConnection objConn;
public test()
{
objConn=new SqlConnection("链接字符串");
objConn.open();
}
~test()
{
objConn.Close();
}
//具体操作数据库的其它函数
}
...全文
131 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
3ss 2004-08-31
  • 打赏
  • 举报
回复
类本身没什么问题呀
savagewang1978 2004-08-31
  • 打赏
  • 举报
回复
我来顶。。。。。。。。。。。
sun417 2004-08-31
  • 打赏
  • 举报
回复
没人理,自己先顶一下
The123 2004-08-31
  • 打赏
  • 举报
回复
最好显示的调用objConn.Close();
sun417 2004-08-31
  • 打赏
  • 举报
回复
问The123:
那要不要在析构中显示的调用objConn.Close();啊?
The123 2004-08-31
  • 打赏
  • 举报
回复
把你的类直接继承IDisposable
Dispose 时在关闭连接

附:
当托管对象不再使用时,垃圾回收器会自动释放分配给该对象的内存,不过,进行垃圾回收的时间不可预知。另外,垃圾回收器对窗口句柄、打开的文件和流等非托管资源一无所知。

将此接口的 Dispose 方法与垃圾回收器一起使用来显式释放非托管资源。当不再需要对象时,对象的使用者可以调用此方法。

向现有类添加 IDisposable 接口是重大的更改,因为它更改了类的语义。

有关如何使用此接口和 Object.Finalize 方法的详细讨论,请参见垃圾回收编程和实现 Dispose 方法主题。

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemidisposableclasstopic.htm

sun417 2004-08-31
  • 打赏
  • 举报
回复
听专业人士说,“C#的析构函数不是对象作用域超出时就析构,而是到一定程度时才进行统一的清除,这是C#的内存回收管理机制。”,不知道这是否属实,敬请指点!
sun417 2004-08-31
  • 打赏
  • 举报
回复
郁闷,但谢谢大家的捧场,你们把你们的打开与关闭数据库的代码贡献出来,让俺来研究研究

62,041

社区成员

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

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

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

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