Catch REFERENCE constraint exception from SQL in C#
What will be proper way to c开发者_高级运维atch exception which throw SQL server when I deleting data with Reference constraint from C# code.
I want to show my users message like: "I can't delete the data because is used" , rather than of showing message like this:The DELETE statement conflicted with the REFERENCE constraint ... The conflict ccurred*in database "rampa", table "dbo.doc", column 'kartica_id'.
Use this:
try
{
//Execute delete statement
}
catch (SqlException sqlEx)
{
//Handle exception
}
finally
{
//Close connection
}
All sql errors are thrown as SqlException
and there are no specific errors. To find out what was error exactly, there is property SqlException.Number
which is the same as SQL Error Code. You can find the list of codes here.
You can access the ConstraintException and map its fields however you want to your own preferred error output.
using System.Data;
try
{
// code that violates constraint
}
catch (ConstraintException exc)
{
// build output message you wish using exc.Message and other fields,
// return cleanly or rethrow as your own exception
}
精彩评论