Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/09/2013, 01:22
maialenlopez
 
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