Datagrid e UpdateCommand

martedì 09 maggio 2006 - 18.40

bluland Profilo | Guru

salve, ho creato un datagrid con il controllo Edit,Update, Cancel, su un db SQL , di seguito metto il codice che ho implementato:
Sub Datagrid_updatecommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand

' definisco un oggetto del dataset per la tabella a cui punta
Dim myds As DsModifica.MYtableDataTable
'associo all'oggetto/costruttore myds le righe puntate dal dataset
myds = Me.DsModifica1.MYtable

' definisco un oggetto row che punti alle righe del dataset
Dim myrow As DsModifica.MYtableRow
'associo a myrow il puntatore myds con l'indice del datagrid
myrow = myds.Rows(e.Item.ItemIndex)

'effettuo la conversione dell'oggetto puntato
'in texbox per poi passarlo all'oggetto myrow.*
myrow.id = CType(e.Item.Cells(3).Controls(0), TextBox).Text
myrow.Cognome = CType(e.Item.Cells(4).Controls(0), TextBox).Text
myrow.Nome = CType(e.Item.Cells(5).Controls(0), TextBox).Text
myrow.Telefono = CType(e.Item.Cells(6).Controls(0), TextBox).Text
myrow.Reparto = CType(e.Item.Cells(7).Controls(0), TextBox).Text

'aggiorno il dataadapter
Me.SqlDataAdapter1.Update(Me.DsModifica1)

'con defaultview set un indice o cursore al datagrid
Me.DataGrid1.DataSource = Me.DsModifica1.MYtable.DefaultView

'risetto l'indice
Me.DataGrid1.EditItemIndex = -1
'ricollego il datagrid al ds
Me.DataGrid1.DataBind()

End Sub

solo che quando digito su Update dopo aver effettuato la modifica del record mi da questo errore:

" Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: index

Source Error:


Line 145: 'effettuo la conversione dell'oggetto puntato
Line 146: 'in texbox per poi passarlo all'oggetto myrow.*
Line 147: myrow.id = CType(e.Item.Cells(3).Controls(0), TextBox).Text
Line 148: myrow.Cognome = CType(e.Item.Cells(4).Controls(0), TextBox).Text
Line 149: myrow.Nome = CType(e.Item.Cells(5).Controls(0), TextBox).Text
"
la line 147 e' quella che mi segnala come error.
qualche idea??
saluti
Enzo

Pongo Profilo | Senior Member

La butto lì: non è che in sql hai abilitato identity sulla ID?

Se l'hai fatto ID viene inserito automaticamente.


Poi: perchè l'ID è la colonna numero 3??

Normalmente modifica è la colonna (0) e di seguito tutte le altre, tra le quali ID di solito occupa la prima posizione utile dopo la colonna dei button o link button, cioè la colonna (1)


bluland Profilo | Guru

l'identity e' disabilitato, (anche se non credo centri), per il il numero di colonna il fatto che io dopo il pulsante edit ho anche delete e select per questo l'ho messo in posizione 3, cmq anche il cambio di posizione da sempre lo stesso errore ho gia' provato, ho paura che sia qualcosa che vada aldila' della programmazione...
cmq grazie lo stesso Pongo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5