예제 #1
0
        /// <summary>
        /// Выполняет запрос без результатов
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="command"></param>
        /// <param name="parameters"></param>
        /// <param name="timeout"></param>
        /// <param name="close"></param>
        /// <param name="showCommandTextWithParams">показать в Debug</param>
        /// <exception cref="Exception"></exception>
        public static int ExecuteNonQuery(this IDbConnection connection, object command,
                                          object parameters = null, int timeout = 30, bool close = false, bool showCommandTextWithParams = false)
        {
            connection.WellOpen();
            IDbCommand cmd = connection.CreateCommand(command, parameters, timeout);

            cmd.CommandTimeout = timeout;
            int r;

            try{
                if (showCommandTextWithParams)
                {
                    Log.Debug("Sql command: [\r\n" + cmd.CommandAsSql() + "\r\n]");
                }
                r = cmd.ExecuteNonQuery();
            }
            catch (Exception ex) {
                throw new Exception("error in query:" + cmd.CommandText, ex);
            }
            finally{
                if (close)
                {
                    connection.Close();
                }
            }
            return(r);
        }