¿Cómo puedo detectar una excepción específica usando C#?
En mi base de datos hay un índice único en algunas columnas.
al usuario inserta registro duplicado esta excepción ha sido tiro:Capturando la excepción específica
No se puede insertar una fila de clave duplicada en el objeto 'dbo. BillIdentity 'con el único índice' IX _BillIdentity '. La declaración ha finalizado.
¿Cómo puedo detectar esta excepción?
Actualmente estoy comprobando que utiliza este código:
catch (Exception ex) {
if (ex.Message.Contains("Cannot insert duplicate key row in object 'dbo._BillIdentity' with unique index 'IX__BillIdentity")) {
string ScriptKey = "$(function() {ShowMessage('Error');});";
ScriptManager.RegisterStartupScript(Page, GetType(), "script", ScriptKey, true);
}
}
creo que su código malo olor.
¿Hay alguna manera mejor?
¿Por qué no comprueba si la clave existe antes de intentar ejecutar la instrucción de inserción? –
@Johann Blais, ¿Cuáles son los beneficios de este trabajo? – Shahin
Evitar la solución alternativa basada en excepciones que está pidiendo;) –