小编cho*_*ell的帖子

为什么不处理/关闭SqlConnection?

鉴于方法:

internal static DataSet SelectDataSet(String commandText, DataBaseEnum dataBase)
{
    var dataset = new DataSet();

    SqlConnection sqlc = dataBase == DataBaseEnum.ZipCodeDb
                             ? new SqlConnection(ConfigurationManager.AppSettings["ZipcodeDB"])
                             : new SqlConnection(ConfigurationManager.AppSettings["WeatherDB"]);
    SqlCommand sqlcmd = sqlc.CreateCommand();
    sqlcmd.CommandText = commandText;
    var adapter = new SqlDataAdapter(sqlcmd.CommandText, sqlc);
    adapter.Fill(dataset);


    return dataset;
}
Run Code Online (Sandbox Code Playgroud)

为什么sqlc(SqlConnection)在调用方法超出范围后没有处理/关闭,或者sqlc没有更多的引用?

编辑1: 即使将其包装在使用中,我仍然可以看到连接使用(我已关闭连接池):

SELECT DB_NAME(dbid) as 'Database Name',
COUNT(dbid) as 'Total Connections'
FROM sys.sysprocesses WITH (nolock)
WHERE dbid > 0
GROUP BY dbid
Run Code Online (Sandbox Code Playgroud)

编辑2: 在我从这里得到的帮助下进行一些调试 - 答案是有人硬编码连接字符串与池.感谢所有的帮助 - 如果可以的话,我会将所有回复标记为答案.

c# asp.net static idisposable sqlconnection

5
推荐指数
1
解决办法
2706
查看次数

标签 统计

asp.net ×1

c# ×1

idisposable ×1

sqlconnection ×1

static ×1