当我运行此代码时,与我的数据库的连接数在connection.Open()
. 为什么它没有回到 2 之后connection.Close()
?
private static void AdoNetStuff()
{
var connection = new SqlConnection(@"Initial Catalog=abook;server=.\SqlExpress;Integrated Security=true");
var sqlCommand = new SqlCommand("SELECT TOP 10 * FROM dbo.Entity", connection);
connection.Open();
sqlCommand.ExecuteReader();
sqlCommand.Dispose();
connection.Dispose();
connection.Close();
}
上面的代码在控制台应用程序中,在我的控制台应用程序关闭之前,连接数不会回落到 2。
这就是我检查连接数的方式。
SELECT DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0 AND DB_NAME(dbid) = 'abook'
GROUP BY dbid, loginame
我可以在结束控制台应用程序之前等待一段时间,我仍然有 3 个连接。一旦我结束应用程序,连接数就会下降到 2。