SQL Server - Error al insertar datos con tablas relacionadas

 
Vista:
Imágen de perfil de Matias
Val: 8
Ha disminuido su posición en 17 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Error al insertar datos con tablas relacionadas

Publicado por Matias (3 intervenciones) el 13/01/2019 23:19:28
Buenas tardes a todos, estoy haciendo un sistema de ventas y tengo un problema al insertar datos en mis tablas y no encuentro solución. Estas son las relaciones que tengo en mi DB y al insertar datos en mi tabla detalle_venta me aparece el error "The INSERT statement conflicted with the FOREIGN KEY constraint "FK_detalle_venta_producto". The conflicted occurred in database "despensa", table "dbo.producto", column "codproducto". The statement has been terminated". Alguien sabe por qué puede ser? Quiero insertar mediante un botón que se llama Guardar y el código es ese.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub btnguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnguardar.Click
 
    Try
 
        Dim dts As New vdetalle_venta
        Dim func As New fdetalle_venta
 
        For Each row As DataGridViewRow In DataGridView1.Rows
 
            dts.gcodproducto_dv = Convert.ToInt64(row.Cells("codproducto").Value())
            dts.gcantidad = Convert.ToDouble(row.Cells("cantidad").Value())
            dts.gprecio_unitario = Convert.ToDouble(row.Cells("precio").Value())
            dts.gimporte = Convert.ToDouble(row.Cells("importe").Value())
 
        Next
 
        If func.insertar(dts) Then
            If func.disminuir_stock(dts) Then
 
            End If
 
            MessageBox.Show("Artículo añadido a la venta", "vamos a añadir productos", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
        Else
            MessageBox.Show("Artículo no fue añadido", "guardando registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
        End If
 
    Catch ex As Exception
 
    End Try
 
End Sub

Espero sus respuestas, muchas gracias!

relac
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.544
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Error al insertar datos con tablas relacionadas

Publicado por Isaias (4063 intervenciones) el 14/01/2019 17:38:52
El INSERT que estas ejecutando esta violando la regla de la "FK_detalle_venta_producto", revisa que estas enviando como dato para esa columna (que no veo en tu modelo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Matias
Val: 8
Ha disminuido su posición en 17 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

Error al insertar datos con tablas relacionadas

Publicado por Matias (3 intervenciones) el 15/01/2019 19:07:05
Muchas gracias por tu respuesta, Isaias! Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.544
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Error al insertar datos con tablas relacionadas

Publicado por Isaias (4063 intervenciones) el 15/01/2019 22:26:28
De nada, ¿resolvió su problema?, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Error al insertar datos con tablas relacionadas

Publicado por raul (3 intervenciones) el 24/01/2019 23:54:22
No tienes que buscar tanto la restricción apunta a "FK_detalle_venta_producto".
que significa que tienes 2 tablas que pueden ser detalle_venta vs Producto ó detalle vs venta_producto
ahora bien la primera tabla detalle ... [como se llame] es la que tiene la restricción o sea que para ingresar datos en esta necesita un indice en la segunda tabla; tu evidentemenente estas enviando registros a la primera tabla detalle... pero pueden pasar que el idice no exista en la segunda tabla ¿? pues tu estas empleando una funcion conversora [Convert.ToInt64(row.Cells("codproducto").Value())] y puede la cadena generada por esta no coincida con el indice
solución reviza con calma los indice que estan en la tabla principal y los que estas intentando enviar, además reviza si las clusulas on update y on delete estan activas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar