nell'eccezzione dovebbe dirti il nome della colonna unique che ha generato il problema o cmq il nome del constraint ... Nel blocco Catch definisci un exception generica tipo :
try
{
....
}
catch(Exception EX)
{
if (EX.ToString().Contains("nome_colonna_1"))
{
//stampi a video nome utente gia usato
}
if (EX.ToString().Contains("nome_colonna_2"))
{
//stampi a video email gia usato
}
}
Per vedere cosa ti da l'eccezione nei due casi puoi usare una seplice Label
e mettere nel blocco catch l'istruzione : Label1.Text = EX.ToString();
Così resci a vedere esattamente nei due casi cosa ti restituisce e metti la stringa giusta nella funzione contains.