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()); }
///// <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); } }
///// <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); } }
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()); }