private static string ReportSqlErrors(SqlException ex) { StringBuilder sb = new StringBuilder(); SqlError[] errors = new SqlError[ex.Errors.Count]; ex.Errors.CopyTo(errors, 0); foreach (var err in errors.OrderBy(e => e.LineNumber)) { if (err.Class > 0) { sb.Append("Msg ").Append(err.Number); sb.Append(", Level ").Append(err.Class); sb.Append(", State ").Append(err.State); if (!string.IsNullOrEmpty(err.Procedure)) { sb.Append(", Procedure ").Append(err.Procedure); } sb.Append(", Line ").Append(err.LineNumber); sb.AppendLine(); } sb.AppendLine(err.Message); } return(sb.ToString()); }