This entry has been published on 2016-01-07 and may be out of date.
Last Updated on 2016-01-07.
By default, MS Visual Studio debugging message does not show useful details if e.g. the Fill() method of a DataSet/DataTable causes a ConstraintException . Especially if your table has a lot of columns, indexes, foreign keys etc., finding the cause can take a long time.
But if you catch the Exception and use its GetErrors() method, you will get more information in detail.
Example:
try
{
this.yourTableAdapter.FillById(this.yourtable, id);
}
catch (ConstraintException)
{
DataRow[] rowErrors = db.yourtable.GetErrors();
System.Diagnostics.Debug.WriteLine("Errors:"
+ rowErrors.Length);
for (int i = 0; i < rowErrors.Length; i++)
{
System.Diagnostics.Debug.WriteLine(rowErrors[i].RowError);
foreach (DataColumn col in rowErrors[i].GetColumnsInError())
{
System.Diagnostics.Debug.WriteLine(col.ColumnName
+ ":" + rowErrors[i].GetColumnError(col));
}
}
}