string SQL="select * from AdministerInfo";
SqlConnection MyConntion= new SqlConnection (@"User ID=sa;Password=;Min Pool Size=0;Max Pool Size=1500;Data Source=127.0.0.1;Database=carclub");
SqlCommand MyCommand=new SqlCommand(SQL,MyConntion);
MyConntion.Open (); SqlDataReader MyDataReader= MyCommand.ExecuteReader(); if(MyDataReader.HasRows)
{
MyDataReader.Read();
}MyDataReader.Close();
MyConntion.Close();==========VS============
string SQL="select * from AdministerInfo";
SqlConnection MyConntion= new SqlConnection (@"User ID=sa;Password=;Min Pool Size=0;Max Pool Size=1500;Data Source=127.0.0.1;Database=carclub");
SqlCommand MyCommand=new SqlCommand(SQL,MyConntion);
MyConntion.Open (); SqlDataReader MyDataReader= MyCommand.ExecuteReader(); if(MyDataReader.HasRows)
{
MyDataReader.Read();
}//MyDataReader.Close(); 仅仅是就是缺少了这项
MyConntion.Close();
我测试了一下,发现内存空间没有太大变化,看MSDN上当您为了任何其他目的通过使用 SqlDataReader 来使用关联的 SqlConnection 时,必须显式调用 Close 方法。Close 方法将填写输出参数的值、返回值和 RecordsAffected,从而增加了关闭用于处理大型或复杂的查询的 SqlDataReader 所用的时间。其他目的是什么意思?
请问到底有没有SqlDataReader.Close()影响吗?
SqlConnection MyConntion= new SqlConnection (@"User ID=sa;Password=;Min Pool Size=0;Max Pool Size=1500;Data Source=127.0.0.1;Database=carclub");
SqlCommand MyCommand=new SqlCommand(SQL,MyConntion);
MyConntion.Open (); SqlDataReader MyDataReader= MyCommand.ExecuteReader(); if(MyDataReader.HasRows)
{
MyDataReader.Read();
}MyDataReader.Close();
MyConntion.Close();==========VS============
string SQL="select * from AdministerInfo";
SqlConnection MyConntion= new SqlConnection (@"User ID=sa;Password=;Min Pool Size=0;Max Pool Size=1500;Data Source=127.0.0.1;Database=carclub");
SqlCommand MyCommand=new SqlCommand(SQL,MyConntion);
MyConntion.Open (); SqlDataReader MyDataReader= MyCommand.ExecuteReader(); if(MyDataReader.HasRows)
{
MyDataReader.Read();
}//MyDataReader.Close(); 仅仅是就是缺少了这项
MyConntion.Close();
我测试了一下,发现内存空间没有太大变化,看MSDN上当您为了任何其他目的通过使用 SqlDataReader 来使用关联的 SqlConnection 时,必须显式调用 Close 方法。Close 方法将填写输出参数的值、返回值和 RecordsAffected,从而增加了关闭用于处理大型或复杂的查询的 SqlDataReader 所用的时间。其他目的是什么意思?
请问到底有没有SqlDataReader.Close()影响吗?
解决方案 »
- 求添加/删除TreeView在Access里的记录 示例
- .net调用webservice返回xml数据
- 打开word文档返回的全是乱码
- 如何限制所有的textbox中用户只能输入数字??
- WebControl继承的问题。up有分
- 变量类型转换的问题
- CS程序模式下客户端连接超时问题
- 毕设中遇到一个头痛环节:要将大量本地邮件(作为语料,eml格式)中解码后的转数据存入txt文件中,郁闷,请大家帮助
- 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配.
- 怎么获取IE中的历史记录?
- 老位老兄打包过.net 2005
- 在WINFORM程序中,怎么将EXCEL导到DATASET中。。急。。谢谢
//Response.Write(SQL);
SqlConnection MyConntion= new SqlConnection (@"User ID=sa;Password=;Min Pool Size=0;Max Pool Size=1500;Data Source=127.0.0.1;Database=carclub");
SqlCommand MyCommand=new SqlCommand(SQL,MyConntion);
MyConntion.Open (); SqlDataReader MyDataReader= MyCommand.ExecuteReader(); if(MyDataReader.HasRows)
{
MyDataReader.Read();
}MyDataReader= MyCommand.ExecuteReader(); //加一句这个
//MyDataReader.Close();
MyConntion.Close();
便出现了错误:
已有打开的与此连接相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首先将它关闭。源错误:
行 26: }
行 27:
行 28: MyDataReader= MyCommand.ExecuteReader();
行 29: //MyDataReader.Close();
行 30: MyConntion.Close();
源文件: c:\inetpub\wwwroot\test\webform6.aspx.cs 行: 28 ====================
难道MSDN上说的“其他目的”指的是继续用MyDataReader进行另外一个数据库语句的操作??
SqlDataReader.ExecuteReader(CommandBehavior.CloseConnection)
这样connection关闭,SqlDataReader也关闭。