try errores error ejemplo duplicate como codes code catch capturar c# ado.net sqlexception

c# - errores - ¿Cómo saber el problema real por el cual se lanza SqlException?



try catch c# ejemplo (2)

Pruebe algo como esto, esto lo ayudará a manejar diferentes condiciones.

usa un bloque try catch como este:

try { ... ... } catch (SqlException ex) { switch (ex.Number) { case 4060: // Invalid Database .... break; case 18456: // Login Failed .... break; case 547: // ForeignKey Violation .... break; case 2627: // Unique Index/ Primary key Violation/ Constriant Violation .... break; case 2601: // Unique Index/Constriant Violation .... break; default: .... break; } }

Quiero manejar diferentes problemas, mientras hago operaciones de base de datos, de manera diferente.

por ejemplo, la operación puede fallar debido a credenciales incorrectas de la base de datos o debido a un problema de red. O puede fallar porque la consulta no es correcta (si el valor de cadena se está pasando en la columna de tipo int)

En mi código C #, solo tenemos SqlException que tiene colección de SqlErrors . Sin embargo, hay muchos niveles de gravedad.

¿Cómo puedo identificar fácilmente la causa de la SqlException? Cómo puedo determinar la excepción es debido al problema de conectividad o falla de autenticación o debido al problema con la consulta.

Estoy usando SQL Server 2005.


SQLException expone la Class propiedad que debería darle el nivel de gravedad.

Más información aquí .