private ContextualSqlException BuildContextException(SqlException ex) { string context; try { StringBuilder builder = new StringBuilder(); builder.AppendLine("Query:"); builder.AppendLine(this.sqlCommand.CommandText); builder.AppendLine(); builder.AppendLine("Parameters:"); Func <object, string> isNull = (value) => (value == null || value == DBNull.Value ? "(null)" : Convert.ToString(value)); this.sqlCommand.Parameters.Cast <SqlParameter>().ToList().ForEach(parameter => { builder.Append(parameter.ParameterName).Append(" = ").Append(isNull(parameter.Value)).AppendLine(); }); context = builder.ToString(); } catch (Exception ex2) { DataLibrary.LoggingCallback(ex2); context = ("Exception building context:" + Environment.NewLine + DataLibrary.BuildExceptionMessage(ex2)); } return(new ContextualSqlException(ex.Message, ex, context)); }
public static string GetProcedureText(string procedureName, SqlConnection conn = null) { bool externalConnection = conn != null; try { if (conn == null) { conn = DataLibrary.GetConnection(); } using (UnitySqlCommand cmd = new UnitySqlCommand(conn, GetProcedureTextSql)) { cmd.Prepare(); cmd.Parameters["@ProcName"] = procedureName; return(cmd.ExecuteScalar <string>(String.Empty)); } } finally { if (externalConnection && conn != null) { conn.Dispose(); } } }
public BaseCommand(SqlConnection connection, string procedureName) { this.procedureName = procedureName; if (connection == null) { connection = DataLibrary.GetConnection(); } else { externalConnection = true; } this.sqlConnection = connection; }