【发布时间】:2011-09-27 04:52:36
【问题描述】:
我有一个带有以下代码的 C# 控制台应用程序:
using (var cn = new SqlConnection())
{
cn.ConnectionString = "Data Source=localhost;Integrated Security=True;Persist Security Info=False";
cn.Open();
System.Console.WriteLine("past open");
}
System.Console.ReadLine();
运行时,我设置了两个断点。一个在 WriteLine,一个在 ReadLine。我还打开了 Sql Server Management Studio (SSMS),并正在查看活动监视器的进程列表。
当我运行应用程序并点击我的第一个断点(在 WriteLine 处)时,我很快在 SSMS 进程列表中看到一个进程,其应用程序名称为“.Net SqlClient Data Provider”,其数据库为“master”。
当我 F5 到第二个断点时,我的期望是该进程将从进程列表中删除,因为我已经关闭了我的 SqlConnection。但是,该进程将保留在列表中,直到应用程序关闭。
我的假设是该进程保留在列表中,因为我的连接并没有真正关闭。如果我的假设是准确的,那么我还需要做什么来关闭连接?如果我的假设不准确,那么为什么我的进程仍然列出,我如何测试我的连接是否真的正确关闭?
谢谢。
【问题讨论】:
标签: c# ssms sql-server-2008