none
consulta sqlException EF RRS feed

  • Pregunta

  • Hola gente quisiera saber como puedo hacer para indicar que campo es el que está violando una restricción de campo único. Actualmente tengo este código, pero quiero indicarle cual es el campo que está provocando la excepción ya que hay varios con esa restricción.

    catch(DbUpdateException ex)
                    {
                        SqlException sqlEx = ex.InnerException.InnerException as SqlException;
                        if(sqlEx.Number==2627)
                        {
                            throw new Exception("mensaje");//ejemplo
                        }
                    }

     
    viernes, 13 de septiembre de 2019 14:21

Todas las respuestas

  • hola

    No se si vas a apoder obtener exactamente el campo, si deberias poder obtener el mensaje donde se mencione el campo y tabla involucrada

    How can I catch UniqueKey Violation exceptions with EF6 and SQL Server?

    quizas lo que planta en la respuesta br3nt en donde aplica regular expression para parsear el mensaje y obtener esos datos

    pero bueno es una opcion, yo creo que mostrando directo el mensaje deberia alcanzar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de septiembre de 2019 15:35
  • hola

    No se si vas a apoder obtener exactamente el campo, si deberias poder obtener el mensaje donde se mencione el campo y tabla involucrada

    How can I catch UniqueKey Violation exceptions with EF6 and SQL Server?

    quizas lo que planta en la respuesta br3nt en donde aplica regular expression para parsear el mensaje y obtener esos datos

    pero bueno es una opcion, yo creo que mostrando directo el mensaje deberia alcanzar

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    Pero a cual te refieres con “mensaje” innerException.Message?? Ese me diiria el nombre del campo?? Porque la idea seria indicarle de alguna forma cual es el campo que esta “duplicado”
    viernes, 13 de septiembre de 2019 16:46
  • >>Pero a cual te refieres con “mensaje” innerException.Message?

    apuntaba al message que esta dentro deex.InnerException.InnerException

    o sea llegar al mensaje del SqlException, pero despues solo mostrar el message no parsearlo para obtener el nombre de la tabla o columna

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 13 de septiembre de 2019 20:58