Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Error a la hora de hacer el insert

Estas en el tema de Error a la hora de hacer el insert en el foro de ASPX (.net) en Foros del Web. estoy programando en vb.net y al hacer un insert como este me da el error que muestro mas abajo. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código vb.net: Ver original ...
  #1 (permalink)  
Antiguo 19/09/2013, 09:02
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Error a la hora de hacer el insert

estoy programando en vb.net y al hacer un insert como este me da el error que muestro mas abajo.

Código vb.net:
Ver original
  1. cm = New SqlCommand
  2.             cm.CommandTimeout = 60
  3.             sql = "INSERT INTO PM_PARTICIPANTES_FAV (SOLICIT_FAV, ROL, PER, PROVE) VALUES (" & lSolicit_fav & ", @ROL,@PER,@PROVE)"
  4.             cm.CommandText = sql
  5.             cm.CommandType = CommandType.Text
  6.             cm.Connection = cn
  7.  
  8.             cm.Parameters.Add("@ROL", SqlDbType.Int, 4, "ROL")
  9.             cm.Parameters.Add("@PER", SqlDbType.VarChar, 1, "PER")
  10.             cm.Parameters.Add("@PROVE", SqlDbType.VarChar, 1, "PROVE")
  11.  
  12.             da.InsertCommand = cm
  13.             da.Update(oDs.Tables("PARTICIPANTES"))

Código txt:
Ver original
  1. The INSERT statement conflicted with the FOREIGN KEY constraint "FK_PM_PARTICIPANTES_FAV_PER". The conflict occurred in database "FSGS_DES_31900_9", table "dbo.PER", column 'COD'.
  2. The statement has been terminated.

¿Alguien me puede ayudar?

Gracias
__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 19/09/2013, 09:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 91
Antigüedad: 13 años, 7 meses
Puntos: 9
Respuesta: Error a la hora de hacer el insert

Eso quiere decir que tu tabla PM_PARTICIPANTES_FAV tiene algun campo que depende del campo COD de la tabla PER, el cual o no estas enviando en esa consulta o estas enviando un valor que no existe en la tabla PER. En otras palabras, verifica que el valor que estas enviando en la linea:

cm.Parameters.Add("@PER", SqlDbType.VarChar, 1, "PER")

sea un valor que exista en la tabla PER.

Saludos.
  #3 (permalink)  
Antiguo 19/09/2013, 09:35
Avatar de ASDRUBAL2112  
Fecha de Ingreso: septiembre-2013
Mensajes: 12
Antigüedad: 10 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Error a la hora de hacer el insert

Hola, por lo que veo tienes una tabla que tiene como nombre PER, esta posee un campo COD, este campo te está relacionando con otra tabla, asi que cuando insertes debes tb enviarle un valor para este campo COD.

Ese es el motivo por el cual te sale el conflicto de Foreing Key.
  #4 (permalink)  
Antiguo 20/09/2013, 01:22
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años, 1 mes
Puntos: 7
Respuesta: Error a la hora de hacer el insert

Cita:
Iniciado por CRauda Ver Mensaje
Eso quiere decir que tu tabla PM_PARTICIPANTES_FAV tiene algun campo que depende del campo COD de la tabla PER, el cual o no estas enviando en esa consulta o estas enviando un valor que no existe en la tabla PER. En otras palabras, verifica que el valor que estas enviando en la linea:

cm.Parameters.Add("@PER", SqlDbType.VarChar, 1, "PER")

sea un valor que exista en la tabla PER.

Saludos.
Hola CRauda,

Me ha servido de mucha ayuda lo que has comentado ya que en el código que había puesto no estaba enviando en su totalidad lo que quería mandar.

A la hora de hacer lo siguiente, cm.Parameters.Add("@PER", SqlDbType.VarChar, 1, "PER"), estaba mandando un varchar de 1 y puede ser de mas caracteres. Por ello y como no se nunca la cantidad de caracteres que puedo mandar, sólo se que no puede ser mayor de 40 (lo he visto en el tipo de dato de la base de datos), le meto un varvhar(50).

El código funcional quedaría de esta forma.

Código vb.net:
Ver original
  1. cm = New SqlCommand
  2.             cm.CommandTimeout = 60
  3.             sql = "INSERT INTO PM_PARTICIPANTES_FAV (SOLICIT_FAV, ROL, PER, PROVE) VALUES (" & lSolicit_fav & ", @ROL,@PER,@PROVE)"
  4.             cm.CommandText = sql
  5.             cm.CommandType = CommandType.Text
  6.             cm.Connection = cn
  7.  
  8.             cm.Parameters.Add("@ROL", SqlDbType.Int, 4, "ROL")
  9.             cm.Parameters.Add("@PER", SqlDbType.VarChar, 50, "PER")
  10.             cm.Parameters.Add("@PROVE", SqlDbType.VarChar, 50, "PROVE")
  11.  
  12.             da.InsertCommand = cm
  13.             da.Update(oDs.Tables("PARTICIPANTES"))

Gracias a l@s dos.

__________________
Gracias por todo;

Un saludo

Etiquetas: insert, net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:06.