none
Error con llave foranea RRS feed

  • Pregunta

  • Hola!!!

    Tengo un problema

    Cuando cargo una venta con cualquier estado no tengo drama. El problema lo tengo con el estado "En curso / Falta pago - Se debe hacer el delivery". Solamente con este estado tengo problemas cuando quiero cargar una venta.

    Cada vez que selecciono ese estado me sale este error:

    System.Data.SqlClient.SqlException: 'The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Venta_EstadoVenta". The conflict occurred in database "PracticaSupervisada", table "dbo.EstadoVenta", column 'id_estado_venta'.

    Es posible que sea porque no hay un estado de venta con id = 7 ? Porque da la casualidad de que justo con el que tengo problemas es con el que tiene id = 8

    Que podra ser?? Ya vi todo no se me ocurre que puede ser!!


    A

    • Cambiado EricRR jueves, 18 de febrero de 2021 15:02 SQL
    jueves, 18 de febrero de 2021 1:35

Respuestas

  • Pero en ese caso no deberia dejarme ingresar ningun estado directamente? porque solamente con un estado en particular me trae el problema

    A

    • Marcado como respuesta Eric_96 jueves, 25 de febrero de 2021 0:12
    jueves, 18 de febrero de 2021 17:02

Todas las respuestas

  • Hola, cómo cargas el combo de estados? Luego, cómo realizas la carga del pedido? Puedes mostrar código? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 18 de febrero de 2021 9:36
  • Que podra ser?? Ya vi todo no se me ocurre que puede ser!!

    Sabemos seguro qué es lo que es. Cuando te sale este error, quiere decir que en la tabla que tiene la FK has intentado grabar un valor que no existe en la tabla a la que apunta la FK. En este caso, quiere decir que has intentado grabar un valor para id_estado_venta que no existe en la tabla que guarda los posibles valores para los estados de venta. Tendrías que ver cuál es el valor que has intentado grabar, que lógicamente no se puede ver examinando la tabla, porque si no deja grabarlo no lo vas a ver grabado. Puedes hacer esto siguiendo el código con el debugger, o podrías incluso usar el Profiler para capturar la sentencia y así ver qué es lo que el programa ha intentado grabar.
    jueves, 18 de febrero de 2021 9:48
  • Bueno el mensaje es muy claro, en la tabla "dbo.EstadoVenta de" la base "PracticaSupervisada", no existe el FOREING KEY (llave heredada - "FK_Venta_EstadoVenta"). ¿Ya lo revisaste?

    IIslas Master Consultant SQL Server

    jueves, 18 de febrero de 2021 15:40
  • Pero en ese caso no deberia dejarme ingresar ningun estado directamente? porque solamente con un estado en particular me trae el problema

    A

    • Marcado como respuesta Eric_96 jueves, 25 de febrero de 2021 0:12
    jueves, 18 de febrero de 2021 17:02
  • Verifica de dónde viene ese 7 que indicas. El error sólo te lo da con ese número ya que como te han comentado ese id no existe en la tabla de estados. Tal vez en tu código estás usando un enum con este estado con 7 como valor? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    jueves, 18 de febrero de 2021 17:19
  •  solamente con un estado en particular me trae el problema
    Justo. Solo te da el error cuando intentas grabar el valor que no existe en la tabla foránea. Los demás sí los permite porque sí existe el valor relacionado.
    jueves, 18 de febrero de 2021 18:53