tho*_*vdb 5 c# sql-server asp.net ado.net
我有以下方法:
public DataSet GetDataSet( string sp, params SqlParameter[] parameters ) {
DataSet ds = new DataSet();
using ( SqlConnection conn = new SqlConnection(
ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString
) ) {
using ( SqlCommand cmd = new SqlCommand() ) {
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = sp;
if ( parameters != null ) {
foreach ( SqlParameter parm in parameters ) {
cmd.Parameters.Add( parm );
}
}
if ( conn.State == ConnectionState.Closed ) {
conn.Open();
}
using ( SqlDataAdapter da = new SqlDataAdapter( cmd ) ) {
da.Fill( ds );
}
}
}
return ds; }
Run Code Online (Sandbox Code Playgroud)
我注意到多次调用此方法(大约 50 次)时会创建多个连接。我通过在 SQL 中执行此查询来检查这一点:
SELECT DB_NAME(dbid) as 'DbNAme', COUNT(dbid) as 'Connections' from master.dbo.sysprocesses with (nolock) WHERE dbid > 0 GROUP BY dbid
Run Code Online (Sandbox Code Playgroud)
调用上述方法时连接数不断增加。难道它不应该一遍又一遍地使用相同的连接(连接池)而不是创建新的连接吗?
| 归档时间: |
|
| 查看次数: |
9366 次 |
| 最近记录: |