DataRead到底怎样关闭才算真的关闭了呢?
我有 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);逻辑层使用完DataRead.Close(); 可是我发现还是不行。 虽然没有报错。原因如下: 我有个项目,涉及的数据比较多 又1W多条。 我在数据层关闭了
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Close();
虽然报错, 不过我直接抛弃了它(这个不是取得数据的方法), 取得的数据速度很快。
如果我不关闭它, 这个程序多执行两次以后 在查询很多数据时出现延时非常厉害,没有修改
SqlCommand com = new SqlCommand(ProcedureName, con);
com.CommandTimeout = 180;
的时候出现服务器反应超时的错误由此可见 是这个DataRead关闭的问题。
如何才能真正关闭这个DataRead呢?
另外补充下:
我还想知道
{
SqlCommand com = new SqlCommand(ProcedureName, con);
}
finally
{
if (con.State != ConnectionState.Closed)
con.Close();
}
/*
finally最后都默认关闭了。 C#是不是不需要自己手动去关闭这些东西呢?
我有 SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);逻辑层使用完DataRead.Close(); 可是我发现还是不行。 虽然没有报错。原因如下: 我有个项目,涉及的数据比较多 又1W多条。 我在数据层关闭了
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Close();
虽然报错, 不过我直接抛弃了它(这个不是取得数据的方法), 取得的数据速度很快。
如果我不关闭它, 这个程序多执行两次以后 在查询很多数据时出现延时非常厉害,没有修改
SqlCommand com = new SqlCommand(ProcedureName, con);
com.CommandTimeout = 180;
的时候出现服务器反应超时的错误由此可见 是这个DataRead关闭的问题。
如何才能真正关闭这个DataRead呢?
另外补充下:
我还想知道
{
SqlCommand com = new SqlCommand(ProcedureName, con);
}
finally
{
if (con.State != ConnectionState.Closed)
con.Close();
}
/*
finally最后都默认关闭了。 C#是不是不需要自己手动去关闭这些东西呢?
解决方案 »
- C# winform程序gridview控件
- gridview如何得到单元格类型是浮点类型的值??
- 关于页面中报表的问题,高手指点下,谢谢!
- 请教有比gdi32.dll更高质量的屏幕抓图方法吗
- 谁用过c# 2005速成版(Express Edition)?我怎么不会连数据库了。
- 为什么Type.GetType("System.Collections.Specialized.ListDictionary")无法得到结果?
- C#中ListView问题!求助![50分]!
- 对于由系统创建的对象实例,该如何获取它的引用呢?
- 100分求助,C#数据库填充代码错误。(在线等)
- 如何将屏幕锁定
- vs2008 treeview 节点如何加图标?
- 如何做一个判断后,再执行某一操作?(用迅雷做举例)
{
//代码块
}
while(rdr.read())
{
...
}
rdr.Close();