/// <summary> /// Функция выполнения процедуры и с параметром и без параметров /// 1 - Если нет параметров то выполняется процедура без параметров /// 2 - Если есть параметры то выполняется Генерация параметров для SqlCommand а потом и процедура /// </summary> /// <typeparam name="TKey">Ключ параметра</typeparam> /// <typeparam name="TValue">Тип параметра</typeparam> /// <param name="conectionstring">Строка соединения</param> /// <param name="procedure">Название процедуры</param> /// <param name="listparametr">Словарь параметров</param> /// <returns>Сообщение от сервера</returns> public string StartingProcedure <TKey, TValue>(string conectionstring, string procedure, Dictionary <TKey, TValue> listparametr = null) { try { Sobytie sobytie = new Sobytie { Messages = null }; using (var con = new SqlConnection(conectionstring)) { SqlCommand command = new SqlCommand(procedure) { CommandType = CommandType.StoredProcedure, Connection = con, CommandTimeout = 0 }; con.InfoMessage += sobytie.Con_InfoMessage; if (listparametr?.Count > 0) { GenerateParametrSql.GenerateParametrSql sql = new GenerateParametrSql.GenerateParametrSql(); command = sql.GenerateParametrs(command, listparametr); } con.Open(); using (command.ExecuteReader()) { } con.Close(); SqlConnection.ClearPool(con); } return(sobytie.Messages); } catch (Exception e) { return(e.Message); } }
public string FaceDel(int id) { try { Sobytie sobytie = new Sobytie { Messages = null }; using (var con = new SqlConnection(_parametrService.ConnectionString)) { con.InfoMessage += sobytie.Con_InfoMessage; using ( var cmd = new SqlCommand(SqlLibaryIfns.SqlSelect.SqlFaceMergin.FaceSelectError.FaceDelete, con)) { cmd.Parameters.Add("@idint", SqlDbType.Int).Value = Convert.ToInt32(id); cmd.Connection.Open(); cmd.ExecuteNonQuery(); return(sobytie.Messages); } } } catch (SqlException e) { return(e.Message); } }
/// <summary> /// Выполнение процедур возвращающие таблицу /// и подписывание его на событие SignalR для возврата сообщений пользователю с сервера!!! /// </summary> /// <typeparam name="TKey">ключ как правило string</typeparam> /// <typeparam name="TValue">Параметр как правило string</typeparam> /// <param name="conectionString">Строка соединения с сервером</param> /// <param name="procedure">Процедура</param> /// <param name="usernameguid">Имя пользователя для возврата сообщений</param> /// <param name="listparametr">Лист параметров для процедуры!!!</param> /// <returns></returns> public async Task <DataSet> ProcedureReturnTable <TKey, TValue>(string conectionString, string procedure, string usernameguid = null, Dictionary <TKey, TValue> listparametr = null) { try { DataSet dataset = new DataSet(); return(await Task <DataSet> .Factory.StartNew(() => { using (var con = new SqlConnection(conectionString)) { var cmd = new SqlCommand(procedure) { CommandType = CommandType.StoredProcedure, Connection = con, CommandTimeout = 0 }; if (usernameguid != null) { Sobytie sobriety = new Sobytie(usernameguid) { Messages = null }; con.InfoMessage += sobriety.Con_InfoMessageSignalR; } if (listparametr?.Count > 0) { GenerateParametrSql.GenerateParametrSql sql = new GenerateParametrSql.GenerateParametrSql(); cmd = sql.GenerateParametrs(cmd, listparametr); } con.Open(); using (var sqlReport = new SqlDataAdapter(cmd)) { sqlReport.Fill(dataset); } con.Close(); SqlConnection.ClearPool(con); return dataset; } })); } catch (Exception e) { Loggers.Log4NetLogger.Error(e); return(null); } }