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í .