Too many arguments to

14/09/2005 - 00:18 por Enrique Rodríguez | Informe spam
Hola a todos.

A ver si alguien me puede ayudar con este problemita.

Intento insertar datos de un dataTable que se encuentra en un DataSet hacia
una tabla de una BD en SQL por medio de un StoreProcedure.
De tal manera que tengo que irle pasando los parametros al SP antes de
ejecutarlo pero me marca el error del subject y solo inserta el primer
registro.
Les paso el codigo que estoy empleando a ver si alguien me puede decir que
estoy haciendo mal.

oConnSql.Open()

For columna = 1 To oDs.Tables(0).Columns.Count - 1

For fila = 0 To oDs.Tables(0).Rows.Count - 1

campo1 = oDs.Tables(0).Columns(columna).ColumnName

campo2 = oDs.Tables(0).Rows(fila).Item(0).ToString()

campo3 = oDs.Tables(0).Rows(fila).Item(columna).ToString()

com.Parameters.Add("@campo1_1", campo1)

com.Parameters.Add("@campo2_2", campo2)

com.Parameters.Add("@campo3_3", campo3)

Try

com.ExecuteNonQuery()

Catch ex As SqlException

Mensaje.Text = ex.Message

End Try

Next fila

Next columna

oConnSql.Close()
 

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
14/09/2005 - 00:36 | Informe spam
"Enrique Rodríguez" escribió en el mensaje
news:
Mostrar la cita
Hola,

El objeto Command no limpia la colección Parameters al ejecutarse, de manera
que para la segunda iteración estás tratando de agregar más parámetros de
los necesarios, con nombre duplicados, ademas.

Una solución podria ser:

Mostrar la cita
' Agregas los parametros
com.Parameters.Add("@campo1_1")
com.Parameters.Add("@campo2_2")
com.Parameters.Add("@campo3_3")

Mostrar la cita
com.Parameters(0).Value = campo1
com.Parameters(1).Value = campo2
com.Parameters(2).Value = campo3
Mostrar la cita
Salud!

Preguntas similares