public void Dispose()
{
if(strConnection!=null)
{
strConnection.Dispose();
strConnection=null;
}
}strConection 是变量,用来标识数据库的连接状态
此方法是释放数据库占用的资源Dispose方法是新建的方法,紧接着在起内部就进行了调用,不是形成了递归了吗?那他下面的strConnection=null就没有了意义了,也达不到释放数据库占用资源的目的啊!《菜鸟个人理解,求高人解答!》
{
if(strConnection!=null)
{
strConnection.Dispose();
strConnection=null;
}
}strConection 是变量,用来标识数据库的连接状态
此方法是释放数据库占用的资源Dispose方法是新建的方法,紧接着在起内部就进行了调用,不是形成了递归了吗?那他下面的strConnection=null就没有了意义了,也达不到释放数据库占用资源的目的啊!《菜鸟个人理解,求高人解答!》
解决方案 »
- 狂晕啊!VS2005开发winform项目输入法"全角"、"半角"问题......进来有分.........
- 如何获取选定datagridview的单元格
- 如何获取动态加载的网页内容?
- 求用C#做的绘图程序画笔怎么写
- TreeView 中,如果使右键单击和左键单击一样,单击空白处不选择任何一个node
- 怎么让鼠标的下方出现说明文字?
- Microsoft Office Spreadsheet 控件如何打开已有的excel文件?
- VS 2010 出错关闭
- dataset中如何查找数据?
- 刚学完C#基础!想用它来管理数据库,有什么好学习方法!!!谢谢大家!
- 将 varchar 转换为数据类型 numeric 时出现算术溢出错误。
- 怎样把所有打开的文件夹关闭?
就像两个类中有相同签名的方法一样。
这样写很安全。就好象C语言中的 free(p); p=null;一样
free 只是堆中数据,但是指针还在栈中,且指向一个非法的位置.
{
if(strConnection!=null)
{
strConnection.Dispose();
strConnection=null;
}
}没看到整个类的定义,猜测 strConnection 实际是 Connection 的实例。
看你这个定义会让人误解成字符串的!
Dispose()是释放内部资源,但是对当前的类对它仍然有引用。
只有当一个对象没有任何引用了。GC才会对它回收。
当前的类先释放自己对Connection的引用。Connection也会释放Connection自己的资源。
从上到下,从外到内,这样是合理的。
Dispose() 调用自定义的Dispose方法
public void Dispose()
{
//不要纠结与方法名
}
strConnection.Dispose() 是立即释放strConnection,将其置为NULL