adopilot
adopilot

Reputation: 4500

Catch REFERENCE constraint exception from SQL in C#

What will be proper way to catch 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'.

Upvotes: 3

Views: 8112

Answers (2)

Ivan Ferić
Ivan Ferić

Reputation: 4763

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.

Upvotes: 7

Steve Townsend
Steve Townsend

Reputation: 54158

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
}

Upvotes: 2

Related Questions