Usuário com melhor resposta
Excepções try catch

Pergunta
-
Bom dia,
Tenho o seguinte problema:
Tenho uma tabela em sql onde a chave primaria é o nº de contribuinte.
Acontece que trabalho com o c# e queria saber se existe no catch alguma excepção que trate o erro de tentar inserir um novo contribuinte que já exista na base de dados.
Se houver essa essa possibildade não teria que fazer uma query para verificar se o nº de contribuinte já existe ou não.
Obrigado,
Elio Godinho
Respostas
-
Uma excption especifica também desconheço, você pode fazer o seguinte:
Catch ex As SqlException 'catch any errors If ex.Number = 2627 Then 'catch error unique index contraint violated MessageBox.Show() Else MessageBox.Show() End If
No catch coloque a captura de uma SqlException e teste se o number da exceção é o 2627, referente a violação de chave unica.Como o Paulo falou o que normalmente é feito é validar se a informação ja existe no banco, se você sabe que ali pode dar um problema então não espere a exceção ser lançada, faça o teste, acredito ser uma boa prática. :)
Rodrigo Reis Ferreira
Microsoft Certified- Editado Rodrigo Reis Ferreira sexta-feira, 3 de fevereiro de 2012 11:08
- Sugerido como Resposta David Silva sexta-feira, 3 de fevereiro de 2012 12:04
- Marcado como Resposta Harley AraujoModerator terça-feira, 7 de fevereiro de 2012 12:04
Todas as Respostas
-
Te confesso que não conheço. O que vejo sempre nestes casos é a validação para ver se existe ou não.
Paulo César Viana
.NET Developer
MCC - Microsoft Community Contributor
MCP - Microsoft Certified Professional
MCTS - Microsoft Certified Technology Especialist
--
Marque as respostas e contribua para uma melhora no fórum. -
-
Uma excption especifica também desconheço, você pode fazer o seguinte:
Catch ex As SqlException 'catch any errors If ex.Number = 2627 Then 'catch error unique index contraint violated MessageBox.Show() Else MessageBox.Show() End If
No catch coloque a captura de uma SqlException e teste se o number da exceção é o 2627, referente a violação de chave unica.Como o Paulo falou o que normalmente é feito é validar se a informação ja existe no banco, se você sabe que ali pode dar um problema então não espere a exceção ser lançada, faça o teste, acredito ser uma boa prática. :)
Rodrigo Reis Ferreira
Microsoft Certified- Editado Rodrigo Reis Ferreira sexta-feira, 3 de fevereiro de 2012 11:08
- Sugerido como Resposta David Silva sexta-feira, 3 de fevereiro de 2012 12:04
- Marcado como Resposta Harley AraujoModerator terça-feira, 7 de fevereiro de 2012 12:04
-