using System.Data; using System.Linq; using System.Text; using MySqlConnector; namespace Sony.Filtr.Utility.Extensions { public static class MysqlCommandExtensions { public static string GetDebugSql(this MySqlCommand mySqlCommand) { StringBuilder sb = new StringBuilder(); DbType[] quotedParameterTypes = { DbType.AnsiString, DbType.Date, DbType.DateTime, DbType.Guid, DbType.String, DbType.AnsiStringFixedLength, DbType.StringFixedLength }; foreach (MySqlParameter mySqlParameter in mySqlCommand.Parameters) { if (mySqlParameter.Value == null) { sb.AppendLine($"SET {mySqlParameter.ParameterName} = NULL;"); } else { var value = mySqlParameter.Value.ToString(); if (quotedParameterTypes.Contains(mySqlParameter.DbType)) { sb.AppendLine($"SET {mySqlParameter.ParameterName} = \"{value}\";"); } else { sb.AppendLine($"SET {mySqlParameter.ParameterName} = {value};"); } } } sb.AppendLine(mySqlCommand.CommandText); return sb.ToString(); } } }