/// <summary>
        ///     记录SQL日志
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="args">参数</param>
        /// <returns>操作的第一行第一列或空</returns>
        /// <remarks>
        ///     注意,如果有参数时,都是匿名参数,请使用?的形式访问参数
        /// </remarks>
        public static void TraceSql(string sql, IEnumerable <SqlParameter> args)
        {
            if (!LogRecorder.LogDataSql)
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(sql))
            {
                return;
            }
            StringBuilder code = new StringBuilder();

            code.AppendLine($"/******************************{DateTime.Now}*********************************/");
            var sqlParameters = args as SqlParameter[] ?? args.ToArray();

            foreach (var par in sqlParameters.Where(p => p != null))
            {
                code.AppendLine($"declare @{par.ParameterName} {par.SqlDbType};");
            }
            foreach (var par in sqlParameters.Where(p => p != null))
            {
                code.AppendLine($"SET @{par.ParameterName} = '{par.Value}';");
            }
            code.AppendLine(sql);
            code.AppendLine("GO");
            LogRecorder.RecordDataLog(code.ToString());
        }
예제 #2
0
        /// <summary>
        ///     记录SQL日志
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="args">参数</param>
        /// <returns>操作的第一行第一列或空</returns>
        /// <remarks>
        ///     注意,如果有参数时,都是匿名参数,请使用?的形式访问参数
        /// </remarks>
        public static void TraceSql(string sql, IEnumerable <MySqlParameter> args)
        {
            if (!LogRecorder.LogDataSql)
            {
                return;
            }
            StringBuilder code = new StringBuilder();

            code.AppendLine("/***************************************************************/");
            var parameters = args as MySqlParameter[] ?? args.ToArray();

            foreach (var par in parameters.Where(p => p != null))
            {
                code.AppendLine($"declare ?{par.ParameterName} {par.MySqlDbType};");
            }
            foreach (var par in parameters.Where(p => p != null))
            {
                code.AppendLine($"SET ?{par.ParameterName} = '{par.Value}';");
            }
            code.AppendLine(sql);
            LogRecorder.RecordDataLog(code.ToString());
        }