none
Instrucción INSERT en conflicto con la restricción FOREIGN KEY FK_PADRES_ALUMNOS RRS feed

  • Pregunta

  • Tablas PADRES y ALUMNOS, en la que 1 PADRE puede tener muchos ALUMNOS.

    En principio, creo que el SQL está correcto, y que el ERROR debe estar en el CODIGO.

    Muchas gracias.

    Private Sub btn_Guardar_Padre_Click(sender As Object, e As EventArgs) Handles btn_Guardar_Padre.Click


    Try

    Dim Documento As String = txt_Documento_Alumno.Text
    Dim TipoDocumento As String = txt_Tipo_Documento_Alumno.Text

    Dim conexion As SqlConnection = New SqlConnection("Server=FELIX-PC; database=COLEGIO MILITAR; Integrated security=true")
    Dim comprobar As String = String.Format("SELECT COUNT(*) FROM PADRES where Documento=@Documento and Tipo_de_Documento=@TipoDocumento", conexion)
    Dim comando As SqlCommand = New SqlCommand(comprobar, conexion)
                comando.Parameters.AddWithValue("@Documento", Documento)
                comando.Parameters.AddWithValue("@TipoDocumento", TipoDocumento)

                comando.Connection = conexion
                comando.Connection.Open()

    Dim contador As Integer = CInt(comando.ExecuteScalar())

    If contador = 0 Then

    Dim Nombre_P As String = txt_Nombre_P.Text
    Dim Apellidos_P As String = txt_Apellidos_P.Text
    Dim Documento_P As String = txt_Documento_P.Text
    Dim TipoDocu_P As String = cmb_Tipo_Documento_P.Text
    Dim Direccion_P As String = txt_Direccion_P.Text
    Dim Direccion_Empleo_P As String = txt_Direccion_Empleo_P.Text
    Dim Estudios_P As String = cmb_Estudios_P.Text
    Dim Ocupacion_P As String = txt_Ocupacion_P.Text
    Dim Nivel_Economico_P As String = cmb_Nivel_Economico_P.Text
    Dim EstadoCivil_P As String = cmb_Estado_Civil_P.Text
    Dim Telefono_P As String = txt_Telefono_P.Text
    Dim Celular_P As String = txt_Celular_P.Text
    Dim Email_P As String = txt_Email_P.Text
    Dim Observaciones_P As String = txt_Observaciones_P.Text

                    comando.Parameters.Clear()

                    comando.CommandText = "insert into PADRES (Nombre_P, Apellidos_P, Documento_P, Tipo_de_Documento_P, Direccion_P, Direccion_Empleo_P, Estudios_P, Ocupacion_P, Telefono_P, Celular_P, Email_P, Nivel_Economico_P, Estado_Civil_P, Observaciones_P,Documento,Tipo_de_Documento) values(@Nombre_P, @Apellidos_P, @Documento_P, @TipoDocu_P, @Direccion_P, @Direccion_Empleo_P, @Estudios_P, @Ocupacion_P, @Telefono_P, @Celular_P, @Email_P, @Nivel_Economico_P, @Estado_Civil_P, @Observaciones_P,@Documento,@TipoDocumento)"

                    comando.Parameters.AddWithValue("@Nombre_P", Nombre_P)
                    comando.Parameters.AddWithValue("@Apellidos_P", Apellidos_P)
                    comando.Parameters.AddWithValue("@Documento_P", Documento_P)
                    comando.Parameters.AddWithValue("@TipoDocu_P", TipoDocu_P)
                    comando.Parameters.AddWithValue("@Direccion_P", Direccion_P)
                    comando.Parameters.AddWithValue("@Direccion_Empleo_P", Direccion_Empleo_P)
                    comando.Parameters.AddWithValue("@Estudios_P", Estudios_P)
                    comando.Parameters.AddWithValue("@Ocupacion_P", Ocupacion_P)
                    comando.Parameters.AddWithValue("@Telefono_P", Telefono_P)
                    comando.Parameters.AddWithValue("@Celular_P", Celular_P)
                    comando.Parameters.AddWithValue("@Email_P", Email_P)
                    comando.Parameters.AddWithValue("@Nivel_Economico_P", Nivel_Economico_P)
                    comando.Parameters.AddWithValue("@Estado_Civil_P", EstadoCivil_P)
                    comando.Parameters.AddWithValue("@Observaciones_P", Observaciones_P)
                    comando.Parameters.AddWithValue("@Documento", Documento)
                    comando.Parameters.AddWithValue("@TipoDocumento", TipoDocumento)

                    comando.ExecuteNonQuery()
                    comando.Connection.Close()

                    MsgBox("PADRE registrado con éxito.")





    • Editado felixmlj miércoles, 26 de febrero de 2014 17:18
    miércoles, 26 de febrero de 2014 17:08

Respuestas

  • Felix

    Sin ver la definición de la FK es dificil decir, daria la sensación que has hecho la FK de manera inversa, o sea en vez de PADRES --> ALUMNOS,  quizas la hiciste ALUMNOS --> PADRE y por lo tanto el problema es que te esta diciendo que no existen alumnos asociados a ese padre.

    Podrías colocar la definición de la FK, también estaria bueno ver las definiciones de las tablas PADRES y ALUMNOS.

    Saludos. 


    • Editado Pablo Fébolo jueves, 27 de febrero de 2014 13:10
    • Marcado como respuesta felixmlj jueves, 27 de febrero de 2014 21:06
    jueves, 27 de febrero de 2014 13:09
  • Gracias Pablo, era exactamente eso y no me había dado cuenta.


    • Editado felixmlj sábado, 1 de marzo de 2014 22:38
    • Marcado como respuesta felixmlj jueves, 13 de marzo de 2014 15:04
    jueves, 27 de febrero de 2014 16:51

Todas las respuestas

  • Felix

    Sin ver la definición de la FK es dificil decir, daria la sensación que has hecho la FK de manera inversa, o sea en vez de PADRES --> ALUMNOS,  quizas la hiciste ALUMNOS --> PADRE y por lo tanto el problema es que te esta diciendo que no existen alumnos asociados a ese padre.

    Podrías colocar la definición de la FK, también estaria bueno ver las definiciones de las tablas PADRES y ALUMNOS.

    Saludos. 


    • Editado Pablo Fébolo jueves, 27 de febrero de 2014 13:10
    • Marcado como respuesta felixmlj jueves, 27 de febrero de 2014 21:06
    jueves, 27 de febrero de 2014 13:09
  • Gracias Pablo, era exactamente eso y no me había dado cuenta.


    • Editado felixmlj sábado, 1 de marzo de 2014 22:38
    • Marcado como respuesta felixmlj jueves, 13 de marzo de 2014 15:04
    jueves, 27 de febrero de 2014 16:51