示例#1
0
        public static bool CheckConflictedException(Exception ex, out ConflictedException exC)
        {
            exC = null;

            if (ex is SqlException)
            {
                var sqlex = ex as SqlException;

                if (sqlex.ErrorCode == -2146232060)
                {
                    exC = new ConflictedException("O registro possui vínculo! Não é possível fazer a exclusão!", ex);
                    return(true);
                }
            }

            return(false);
        }
示例#2
0
        /// <summary>
        /// Executa uma consulta SQL e retorna as linhas afetadas
        /// </summary>
        /// <param name="query">Consulta SQL</param>
        /// <param name="commandType"> </param>
        /// <param name="parameters">Parametros para a consulta</param>
        /// <param name="connection">Objeto de conexão</param>
        /// <param name="transaction">Objeto de transação</param>
        /// <param name="timeOut"> </param>
        /// <returns>Linhas afetadas</returns>
        public static int ExecuteNonQuery(string query,
                                          IDbConnection connection,
                                          CommandType commandType    = CommandType.Text,
                                          IDbTransaction transaction = null,
                                          int timeOut = 90,
                                          IEnumerable <IDbDataParameter> parameters = null)
        {
            if (query == null)
            {
                throw new ArgumentNullException("query");
            }
            if (connection == null)
            {
                throw new ArgumentNullException("connection");
            }

            var connectionOpened = connection.State == ConnectionState.Open;

            OpenConnection(connection, !connectionOpened);

            try
            {
                using (var cmd = PrepareCommand(query, connection, commandType, transaction, parameters, timeOut))
                {
                    return(cmd.ExecuteNonQuery());
                }
            }
            catch (Exception ex)
            {
                ConflictedException exC;

                if (ConflictedException.CheckConflictedException(ex, out exC))
                {
                    throw exC;
                }

                throw new Exception(ERRO_109, ex);
            }
            finally
            {
                CloseConnection(connection, !connectionOpened);
            }
        }