第一问:
SqlConnection cn = new SqlConnection("……")使用了cn.Dispose后还需要cn.Close()吗?=========================================勤劳的分割线========================================第二问:
SqlDataReader sdr = SqlHelper.ExecuteReader(cn, CommandType.StoredProcedure, "……", 参数);
需要手动Close并Dispose吗?===================================懒惰的分割线====================================第三问:
using (SqlDataReader sdr = SqlHelper.ExecuteReader(cn, CommandType.StoredProcedure, "……", 参数))
{
…………
}如果使用了using关键字,DataReader还需要Close和Dispose吗?=====要死不活的分割线=====请大家解答解答,新项目几万人用,对性能要求特别高,一定要处理好这些细节。
如果方便的话,请按一定格式一个问一个问回答。万分感谢。
SqlConnection cn = new SqlConnection("……")使用了cn.Dispose后还需要cn.Close()吗?=========================================勤劳的分割线========================================第二问:
SqlDataReader sdr = SqlHelper.ExecuteReader(cn, CommandType.StoredProcedure, "……", 参数);
需要手动Close并Dispose吗?===================================懒惰的分割线====================================第三问:
using (SqlDataReader sdr = SqlHelper.ExecuteReader(cn, CommandType.StoredProcedure, "……", 参数))
{
…………
}如果使用了using关键字,DataReader还需要Close和Dispose吗?=====要死不活的分割线=====请大家解答解答,新项目几万人用,对性能要求特别高,一定要处理好这些细节。
如果方便的话,请按一定格式一个问一个问回答。万分感谢。
解决方案 »
- *******************请教一个关于NHibernate的问题**************
- CustomValidator
- 现在手里有一个关于短信的项目
- 如何设置treeview中的treenode不能被点击?
- vs 2005为什么BIN目录下面没DLL文件
- 各位网友好,过来看看我做的这个网站能值多少钱。
- 新手问题~~关于DATAGRID多表绑定时的疑难问题~~分值不多,只有这门多了…………
- 急。。。关于dropdownlist的问题
- 新手问题,在什么位置声明命名空间。
- 我的datagrid控件显示Access的“日期/时间”字段...
- 请教从数据库中怎么绑定数据到iframe(或有其他解决方案)
- 大家来评评这个网,学.NET不久做的,
不放心就Dispose
2 yes
3 no
Dispose: 是释放生成的连接对象SqlConnection它们两个都能关闭连接
protected override void Dispose(bool disposing)
{
if (disposing)
{
switch (this._objectState)
{
case ConnectionState.Open:
{
this.Close();
break;
}
}
this._constr = null;
}
base.Dispose(disposing);
}
2、SqlDataReader占用的资源在SqlConnection关闭后会强制释放的,但是手动释放SqlDataReader也是必要的。3、离开using块会自动调用Dispose,勿需再显示调用,同样的,SqlDataReader.Dispose也会调用Close方法。
Dispose: 是释放生成的连接对象SqlConnection
比如db.insert("@Test", "Test"); // 这条语句出错,没有@Test这个参数的.
cn.Close(); // 这里还能执行吗?不执行是不是连接就一直开在那里在?