Ho uno scrpt che consente di modificare un dato da un datagrid:
"
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)

dataop.Text = calendar1.SelectedDate.ToString()
Dim dataop2 As String
dataop2 = Left(dataop.Text, 10)

If Session("datagrid") Is Nothing Then

' Dim myCommand As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("/contocorrente/mdb-database/contocorrente.mdb")
'Dim objConnE As New OleDbConnection(strConnE)

'Importa la connessione
Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/contocorrente/mdb-database/contocorrente.mdb")

'Apri la connessione
Dim myCommand As New OleDbDataAdapter("SELECT * FROM accrediti WHERE dataop =" & "'" & dataop2 & "'" & "ORDER BY cuas ASC", myConnection)

'Riempi l'oggetto DataSet
ds = New DataSet()
myCommand.Fill(ds, "accrediti")

Session("datagrid") = ds
Else
ds = Session("datagrid")
End If

'Crea DataView
dv = New DataView(ds.Tables("accrediti"))
dv.Sort = "id"

DataGrid1.DataSource = dv
If Not Page.IsPostBack Then
DataBind()
End If
End Sub

Private Sub DataGrid1_Edit(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
DataGrid1.EditItemIndex = e.Item.ItemIndex
DataGrid1.DataBind()
End Sub

Private Sub DataGrid1_Update(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
'Leggi dati
Dim idUtente As String = e.Item.Cells(0).Text
Dim txtnumop As String = e.Item.Cells(1).Text
Dim txtdataop As String = e.Item.Cells(2).Text
Dim txtdataval As String = e.Item.Cells(3).Text
Dim txtcuas As String = e.Item.Cells(4).Text
Dim txtimpaccredito As String = e.Item.Cells(5).Text
Dim txtquantita As String = e.Item.Cells(6).Text
Dim txtimppervenuto As TextBox = e.Item.Cells(7).Controls(0)
Dim txtdatapervenuto As TextBox = e.Item.Cells(8).Controls(0)
Dim txtimpnoperv As TextBox = e.Item.Cells(9).Controls(0)
Dim txttotalebusta As TextBox = e.Item.Cells(10).Controls(0)
Dim txttotaledalavor As String = e.Item.Cells(11).Text
Dim txttotalequieta As String = e.Item.Cells(12).Text
Dim txttotaledarestitu As String = e.Item.Cells(13).Text
Dim txttotalemancatorestitu As String = e.Item.Cells(14).Text


Dim imppervenuto As String = txtimppervenuto.Text
Dim datapervenuto As String = txtdatapervenuto.Text
Dim impnoperv As String = txtimpnoperv.Text
Dim totalebusta As String = txttotalebusta.Text


'elimina riga
dv.RowFilter = "id=" + idUtente
If dv.Count > 0 Then
dv.Delete(0)
End If
dv.RowFilter = ""

'inserisci nuova riga
Dim dr As DataRow = ds.Tables("accrediti").NewRow()
dr(0) = idUtente
dr(1) = txtnumop
dr(2) = txtdataop
dr(3) = txtdataval
dr(4) = txtcuas
dr(5) = txtimpaccredito
dr(6) = txtquantita
dr(7) = imppervenuto
dr(8) = datapervenuto
dr(9) = impnoperv
dr(10) = totalebusta
dr(11) = txttotaledalavor
dr(12) = txttotalequieta
dr(13) = txttotaledarestitu
dr(14) = txttotalemancatorestitu
ds.Tables("accrediti").Rows.Add(dr)

DataGrid1.EditItemIndex = -1
DataGrid1.DataBind()

'Aggiorna il DB
Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/contocorrente/mdb-database/contocorrente.mdb")
Dim myCommand As New OleDbCommand("UPDATE accrediti SET imppervenuto=?, datapervenuto=?, impnoperv=?, totalebusta=? WHERE id=? AND numop=?", myConnection)
myCommand.Parameters.Add(New OleDbParameter("@7", imppervenuto))
myCommand.Parameters.Add(New OleDbParameter("@8", datapervenuto))
myCommand.Parameters.Add(New OleDbParameter("@9", impnoperv))
myCommand.Parameters.Add(New OleDbParameter("@10", totalebusta))
myCommand.Parameters.Add(New OleDbParameter("@0", idUtente))
myCommand.Parameters.Add(New OleDbParameter("@1", txtnumop))
myConnection.Open()
myCommand.ExecuteNonQuery()
myConnection.Close()
End Sub
"

quando provo a variare il dato presente mi da questo errore:

Argomento specificato non compreso nell'intervallo. Nome parametro: index

sulla riga 101

Riga 99: Dim txtimppervenuto As TextBox = e.Item.Cells(7).Controls(0)
Riga 100: Dim txtdatapervenuto As TextBox = e.Item.Cells(8).Controls(0)
Riga 101: Dim txtimpnoperv As TextBox = e.Item.Cells(9).Controls(0)
Riga 102: Dim txttotalebusta As TextBox = e.Item.Cells(10).Controls(0)
Riga 103: Dim txttotaledalavor As String = e.Item.Cells(11).Text

Non riesco a capire dov'è l'errore.

Qualcuno sa darmi qualche indicazione?

Grazie.