Пример #1
0
        public static string GetSqlLogString(string sql, object paramsObject)
        {
            var parameters = new DynamicParameters(paramsObject);

            var sb = new StringBuilder();

            sb.AppendLine();
            sb.AppendLine("==== Begin Query Trace ====");
            sb.AppendLine();
            sb.AppendLine("QUERY TEXT:");
            sb.AppendLine(sql);
            sb.AppendLine();
            sb.AppendLine("PARAMETERS:");

            foreach (var p in parameters.ToDictionary())
            {
                var val = (p.Value is string) ? string.Format("\"{0}\"", p.Value) : p.Value;
                sb.AppendFormat("{0} = [{1}]", p.Key, val.ToJson() ?? "NULL").AppendLine();
            }

            sb.AppendLine();
            sb.AppendLine("==== End Query Trace ====");
            sb.AppendLine();

            return(sb.ToString());
        }
Пример #2
0
        ///// <summary>
        ///// 批量插入
        ///// </summary>
        ///// <param name="conn"></param>
        ///// <param name="list">源数据</param>
        //internal static void BulkCopy<T>(IDbConnection conn, IEnumerable<T> list)
        //{
        //    var dt = list.ToDataTable();

        //    using (conn)
        //    {
        //        if (conn.State == ConnectionState.Closed)
        //            conn.Open();

        //        using (var sqlbulkcopy = new SqlBulkCopy((SqlConnection)conn))
        //        {
        //            sqlbulkcopy.DestinationTableName = dt.TableName;
        //            for (var i = 0; i < dt.Columns.Count; i++)
        //            {
        //                sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
        //            }
        //            sqlbulkcopy.WriteToServer(dt);
        //        }
        //    }
        //}

        public static string FormatString(this DynamicParameters parameters)
        {
            try
            {
                var           di  = parameters.ToDictionary();
                StringBuilder sbP = new StringBuilder();
                sbP.Append("{ \r\n");
                List <string> ls = new List <string>();
                foreach (var i in di)
                {
                    ls.Add($"  \"{i.Key}\" : \"{i.Value}\"");
                }
                sbP.Append(string.Join(",\r\n", ls));
                sbP.Append("\r\n}");
                return(sbP.ToString());
            }
            catch (Exception)
            {
                return(string.Empty);
            }
        }
Пример #3
0
        ///// <summary>
        ///// 批量插入
        ///// </summary>
        ///// <param name="conn"></param>
        ///// <param name="list">源数据</param>
        //internal static void BulkCopy<T>(IDbConnection conn, IEnumerable<T> list)
        //{
        //    var dt = list.ToDataTable();

        //    using (conn)
        //    {
        //        if (conn.State == ConnectionState.Closed)
        //            conn.Open();

        //        using (var sqlbulkcopy = new SqlBulkCopy((SqlConnection)conn))
        //        {
        //            sqlbulkcopy.DestinationTableName = dt.TableName;
        //            for (var i = 0; i < dt.Columns.Count; i++)
        //            {
        //                sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
        //            }
        //            sqlbulkcopy.WriteToServer(dt);
        //        }
        //    }
        //}

        public static string FormatString(this DynamicParameters parameters)
        {
            try
            {
                var           di  = parameters.ToDictionary();
                StringBuilder sbP = new StringBuilder();
                sbP.Append("{ \r\n");
                List <string> ls = new List <string>();
                foreach (var i in di)
                {
                    if (!(i.Value is string) && i.Value is IEnumerable arr)
                    {
                        StringBuilder sb = new StringBuilder();
                        foreach (var ob in arr)
                        {
                            if (sb.Length > 0)
                            {
                                sb.Append(", ");
                            }
                            sb.Append('"');
                            sb.Append(ob);
                            sb.Append('"');
                        }
                        ls.Add($"  \"{i.Key}\" : [ { sb } ]");
                    }
                    else
                    {
                        ls.Add($"  \"{i.Key}\" : \"{i.Value}\"");
                    }
                }
                sbP.Append(string.Join(",\r\n", ls));
                sbP.Append("\r\n}");
                return(sbP.ToString());
            }
            catch (Exception)
            {
                return(string.Empty);
            }
        }
Пример #4
0
        private static void LogQuery(string sql, DynamicParameters parameters)
        {
            var sb = new StringBuilder();

            sb.AppendLine();
            sb.AppendLine("==== Begin Query Trace ====");
            sb.AppendLine();
            sb.AppendLine("QUERY TEXT:");
            sb.AppendLine(sql);
            sb.AppendLine();
            sb.AppendLine("PARAMETERS:");
            foreach (var p in parameters.ToDictionary())
            {
                var val = (p.Value is string) ? string.Format("\"{0}\"", p.Value) : p.Value;
                sb.AppendFormat("{0} = [{1}]", p.Key, val.ToJson() ?? "NULL").AppendLine();
            }

            sb.AppendLine();
            sb.AppendLine("==== End Query Trace ====");
            sb.AppendLine();

            Logger.Trace(sb.ToString());
        }