From a064b5972dab1b4b2b69e092c2ce596f184ae18e Mon Sep 17 00:00:00 2001 From: "a.bozhenov" Date: Mon, 2 Sep 2019 15:35:13 +0300 Subject: [PATCH] upd --- ZeroLevel.SQL/SqlDbConnectionFactory.cs | 15 +++++-- ZeroLevel.SQL/SqlDbProvider.cs | 58 +++++++++++++++++++------ 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/ZeroLevel.SQL/SqlDbConnectionFactory.cs b/ZeroLevel.SQL/SqlDbConnectionFactory.cs index 667956d..710002e 100644 --- a/ZeroLevel.SQL/SqlDbConnectionFactory.cs +++ b/ZeroLevel.SQL/SqlDbConnectionFactory.cs @@ -62,14 +62,21 @@ namespace ZeroLevel.SqlServer } dbConnectionString = new SqlConnectionStringBuilder(_currentConnectionString); dbConnectionString.Pooling = true; - dbConnectionString.MaxPoolSize = 50; } public SqlConnection CreateConnection() { - var connection = new SqlConnection(ConnectionString); - connection.Open(); - return connection; + try + { + var connection = new SqlConnection(ConnectionString); + connection.Open(); + return connection; + } + catch (Exception ex) + { + Log.Error(ex, $"[SqlDbConnectionFactory.CreateConnection] {ConnectionString}"); + throw; + } } #region Helpers diff --git a/ZeroLevel.SQL/SqlDbProvider.cs b/ZeroLevel.SQL/SqlDbProvider.cs index a74f1ea..9682693 100644 --- a/ZeroLevel.SQL/SqlDbProvider.cs +++ b/ZeroLevel.SQL/SqlDbProvider.cs @@ -7,7 +7,7 @@ using System.Data.SqlClient; namespace ZeroLevel.SqlServer { public class DbReader - :IDisposable + : IDisposable { private readonly DbConnection _connection; private readonly IDbCommand _command; @@ -76,6 +76,7 @@ namespace ZeroLevel.SqlServer cmd.ExecuteNonQuery(); } } + connection.Close(); } } @@ -88,9 +89,16 @@ namespace ZeroLevel.SqlServer { using (DbConnection connection = _factory.CreateConnection()) { - using (var cmd = CreateCommand(connection, query, par, Timeout)) + try + { + using (var cmd = CreateCommand(connection, query, par, Timeout)) + { + return cmd.ExecuteNonQuery(); + } + } + finally { - return cmd.ExecuteNonQuery(); + connection.Close(); } } } @@ -108,6 +116,7 @@ namespace ZeroLevel.SqlServer } finally { + connection.Close(); connection.Dispose(); } } @@ -148,6 +157,7 @@ namespace ZeroLevel.SqlServer da.Fill(ds); } } + connection.Close(); } return ds; } @@ -164,6 +174,7 @@ namespace ZeroLevel.SqlServer da.Fill(ds); } } + connection.Close(); } return ds; } @@ -174,9 +185,16 @@ namespace ZeroLevel.SqlServer { using (var connection = _factory.CreateConnection()) { - using (var cmd = CreateCommand(connection, query, null, Timeout)) + try + { + using (var cmd = CreateCommand(connection, query, null, Timeout)) + { + return cmd.ExecuteScalar(); + } + } + finally { - return cmd.ExecuteScalar(); + connection.Close(); } } } @@ -185,9 +203,16 @@ namespace ZeroLevel.SqlServer { using (var connection = _factory.CreateConnection()) { - using (var cmd = CreateCommand(connection, query, par, Timeout)) + try + { + using (var cmd = CreateCommand(connection, query, par, Timeout)) + { + return cmd.ExecuteScalar(); + } + } + finally { - return cmd.ExecuteScalar(); + connection.Close(); } } } @@ -198,13 +223,20 @@ namespace ZeroLevel.SqlServer { using (var connection = _factory.CreateConnection()) { - using (var command = new SqlCommand(name, connection) + try { - CommandType = CommandType.StoredProcedure - }) + using (var command = new SqlCommand(name, connection) + { + CommandType = CommandType.StoredProcedure + }) + { + command.CommandTimeout = 300000; + return command.ExecuteNonQuery(); + } + } + finally { - command.CommandTimeout = 300000; - return command.ExecuteNonQuery(); + connection.Close(); } } } @@ -281,7 +313,7 @@ namespace ZeroLevel.SqlServer return new SqlParameter[0]; } - private static SqlCommand CreateCommand(DbConnection connection, string query, DbParameter[] parameters, int timeout) + public static SqlCommand CreateCommand(DbConnection connection, string query, DbParameter[] parameters, int timeout) { var command = connection.CreateCommand(); command.CommandText = query;