Checking before you try to delete may seem like a good idea but IMO it is a little bit redundant (unless you only have 1 user) as it will not guarantee that it is safe to delete, the state of the database could very easily be changed by another user in-between performing the check and issuing the delete command.
I would let the database handle the delete and then catch and handle specific exceptions if they are thrown in the code. I think you would get a SqlException in this case and then you would need to examine the error code for the errors you want to handle.