Eliminare un Record da una DataGrid

giovedì 15 giugno 2006 - 16.00

nioMatrix Profilo | Junior Member

Salve a tutti

Ho utilizzato in una piccola applicazione il seguente codice per eliminare un record da una
datagrid, ma non ho capito bene come funziona.

Dim cm As CurrencyManager = CType(Me.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember), CurrencyManager)
Dim dv As DataView = CType(cm.List, DataView)
Dim dr As DataRow
dr = dv.Item(cm.Position).Row
dr.Delete();

Potete spiegarmelo, oppure potete darmi un link di una pagina che tratta quast'argomento?
(mi servirebbe soprattutto capire cosa è e a cosa serve il CurrencyManager)

Grazie

PS: Scusate ho sbagliato sezione

blood Profilo | Senior Member

>Salve a tutti
>
>Ho utilizzato in una piccola applicazione il seguente codice
>per eliminare un record da una
>datagrid, ma non ho capito bene come funziona.
>
>Dim cm As CurrencyManager = CType(Me.BindingContext(DataGrid1.DataSource,
>DataGrid1.DataMember), CurrencyManager)
>Dim dv As DataView = CType(cm.List, DataView)
>Dim dr As DataRow
>dr = dv.Item(cm.Position).Row
>dr.Delete();
>
>Potete spiegarmelo, oppure potete darmi un link di una pagina
>che tratta quast'argomento?
>(mi servirebbe soprattutto capire cosa è e a cosa serve il CurrencyManager)
>
>Grazie

potresti usare direttamente la funzione cm.RemoveAt() del currency manager:

Dim cm As CurrencyManager = Me.BindingContext(dataset, "TABELLA")
cm.RemoveAt(Me.datagrid.CurrentRowIndex)

Il currencyManager ti permette di gestire tutti i legami tra una base dati sorgente ed un oggetto contenitore (in questo caso l'eliminazione di una riga..)



---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

nioMatrix Profilo | Junior Member

Ma se provo ad effettuare l'ordinamento eulla datagrid, viene eliminato sempre il record voluto?

blood Profilo | Senior Member

>Ma se provo ad effettuare l'ordinamento eulla datagrid, viene
>eliminato sempre il record voluto?

??? cioè?? cmq con la funzione cm.RevoveAt(INDICE as Integer) viene eliminata la riga avente quell'indice
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

nioMatrix Profilo | Junior Member

Se cambio l'ordine delle righe visualizzate dal DataGrid, la riga 1 del DataGrid non sarà più uguale alla riga 1 del recordset, quindi rischio di eliminare una riga nn voluta.

Spero di essere stato chiaro, in quanto hoi le idee un pò contortre su questo argomento

PS: Sto continuando la discussione quì:

http://www.dotnethell.it/forum/messages.aspx?ThreadID=8490

blood Profilo | Senior Member

>Se cambio l'ordine delle righe visualizzate dal DataGrid, la
>riga 1 del DataGrid non sarà più uguale alla riga 1 del recordset,
>quindi rischio di eliminare una riga nn voluta.
>
>Spero di essere stato chiaro, in quanto hoi le idee un pò contortre
>su questo argomento
>
>PS: Sto continuando la discussione quì:
>
>http://www.dotnethell.it/forum/messages.aspx?ThreadID=8490

ti ho gia detto che il currency manager opera SOLTANTO sull'oggetto contenitore e non sul Dataset o i dati sul db fisico se prima non vengono aggiornati rispetto all'oggetto.
Comunque sia è ovvio che se hai i dati su una griglia, ordini la griglia, il currency manager che gestirà la griglia sarà aggiornato...
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

nioMatrix Profilo | Junior Member

Dim dRow As DataRow
Dim cm As CurrencyManager = Me.BindingContext(DataGrid.DataSource, DataGrid.DataMember)
Dim dv As DataView = cm.List()
dRow = dv(cm.Position).Row
dRow.Delete()

Ma in questo codice non faccio riferimento alla griglia (DataGrid), quindi come fa il currency manager ad avere lo stesso ordinamento della DataGrid?

PS: Se neache stavolta sono riuscito ad esprimere in modo chiaro il mio problema ci rinuncio

Ciao e Grazie

blood Profilo | Senior Member

ti ho risposto di là continuiamo di là
---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)
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