Hola amigos del foro mi consulta es la siguiente que quiero grabar una grilla que posee 9 columnas al grabar las detecta pero la ultima me dice que esta fuera de rango, este el código que utilizo para grabar y el que utilizo en los presente formularios en que se presenta.
Sub Graba()
Dim ds As DataSet
ds = Session("tabla")
Dim builder As SqlCommandBuilder
builder = Session("cmd")
Dim sqladd As New SqlCommand
sqladd = builder.GetInsertCommand()
sqladd.Connection = conn
Dim sqlmod As New SqlCommand
sqlmod.Connection = conn
Dim sqldel As New SqlCommand
sqldel.Connection = conn
sqladd.CommandText = "insert into Orden_Compara1 ([N_Filas], [Cantidad], [Repuestos], [Precio_Total], [Siniestro], [Patente_Vehiculo], [N_Cotizacion], [Nombre_Proveedor3], [Activo]) VALUES (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9)"
Try
sqldel.CommandText = "delete from Orden_Compra1 where (Siniestro=" _
+ ds.Tables("Grilla").Rows(0).Item("Siniestro").ToSt ring.Trim + ")"
sqldel.ExecuteNonQuery()
Catch ex As Exception
Dim script As String = String.Format("alert('{0}');", ex.Message)
ScriptManager.RegisterStartupScript(Me, GetType(Page), "Información Incorrecta", script, True)
End Try
For Each fila As DataRow In ds.Tables("Grilla").Rows
If Not fila.RowState = DataRowState.Deleted Then
sqladd.Parameters(0).Value = fila("N_Filas")
sqladd.Parameters(1).Value = fila("Cantidad")
sqladd.Parameters(2).Value = fila("Repuestos")
sqladd.Parameters(3).Value = fila("Precio_Total")
sqladd.Parameters(4).Value = fila("Siniestro")
sqladd.Parameters(5).Value = fila("Patente_Vehiculo")
sqladd.Parameters(6).Value = fila("N_Cotizacion")
sqladd.Parameters(7).Value = fila("Nombre_Proveedor3")
sqladd.Parameters(8).Value = fila("Activo")
sqladd.ExecuteNonQuery()
End If
Next
End Sub
además menciono los valores del error que me menda como mensaje de error.
Error de servidor en la aplicación '/WebSite2'.

Índice 8 no válido para SqlParameterCollection con Count=8.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.IndexOutOfRangeException: Índice 8 no válido para SqlParameterCollection con Count=8.
Error de código fuente:
Línea 235: sqladd.Parameters(6).Value = fila("N_Cotizacion")
Línea 236: sqladd.Parameters(7).Value = fila("Nombre_Proveedor3")
Línea 237: sqladd.Parameters(8).Value = fila("Activo")
Línea 238: sqladd.ExecuteNonQuery()
Línea 239: End If
Archivo de origen: C:\Users\Slash\Documents\Visual Studio 2010\WebSites\WebSite2\Frmcompra.aspx.vb Línea: 237
Seguimiento de la pila:
[IndexOutOfRangeException: Índice 8 no válido para SqlParameterCollection con Count=8.]
System.Data.SqlClient.SqlParameterCollection.Range Check(Int32 index) +2484827
System.Data.SqlClient.SqlParameterCollection.GetPa rameter(Int32 index) +19
System.Data.SqlClient.SqlParameterCollection.get_I tem(Int32 index) +12
Frmcompra.Graba() in C:\Users\Slash\Documents\Visual Studio 2010\WebSites\WebSite2\Frmcompra.aspx.vb:237
Frmcompra.CMDGRABAR_Click(Object sender, EventArgs e) in C:\Users\Slash\Documents\Visual Studio 2010\WebSites\WebSite2\Frmcompra.aspx.vb:1303
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9782354
System.Web.UI.WebControls.Button.RaisePostBackEven t(String eventArgument) +204
System.Web.UI.WebControls.Button.System.Web.UI.IPo stBackEventHandler.RaisePostBackEvent(String eventArgument) +12
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument) +15
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639
Favor de ayudarme porque para mi esta bien código y no hay problema