2009-07-01 15 views
7

Tengo un controlador de excepción para el tipo SqlException y estoy buscando en la propiedad SqlException.Number de la excepción para determinar si se produjo un bloqueo muerto (1205). Soy curioso, en lugar de escribir SqlException.Number == 1205, ¿hay una enumeración a la que pueda hacer referencia que produzca algo similar a SqlException.Number == SqlExceptionNumberEnum.DeadLockVictim?.NET SqlClient Número de error Enum Tipo

Puede que no sea factible debido al volumen de corte de posibles mensajes/números de error, pero pensó que valía la pena preguntar. ¡Gracias!

Respuesta

1

No es que yo sepa. En particular, puede definir sus propios números de error con sp_addmessage, y los errores cambian (crecen) por versión de SQL-Server, por lo que sería un problema si (por ejemplo) estuviera usando .NET 2.0 con SQL Server 2008, como tus números existirían

1

Lamentablemente, no creo que esto sea factible. Si ejecuta la siguiente consulta,

select * from sys.messages where language_id=1033 and severity between 11 and 16 

produce más de seis mil filas. Podrías escribir una pequeña aplicación para analizar la tabla y crear una clase C# con propiedades de const que representen cada mensaje, pero probablemente no valga la pena.