コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        /// <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);
            }
        }