Datagrid collegata a dataset

martedì 11 settembre 2007 - 08.55

gab82 Profilo | Junior Member

come si fa per collagere un dataset ad un datasource in modo che se l'utente modifica un valore / aggiunge una riga / elimina una riga dal datagrid questo avvenga anche nel dataset?

c'è una proprietà che permetta questo in modo da non dover scrivere tutto il codice che gestisca tali aventi ed aggiorni il dataset?

ciao

SSUPERPIPPO Profilo | Guru

Il DataSet non è altro che una copia lato client del tuo Database fisico.
Se tu collegi il DataSet al tuo DataGridView, tutte le modifiche/inserimenti/eliminazioni che vengono apportate non intaccano il Database fisico ma sono limitate al Dataset (copia lato client).

Per effettuare la sincronizzazione del DataBase fisico devi utilizzare il medoto Update del DataAdapter che hai utilizzato per creare il tuo Dataset (Fill)

Ti consiglio di studiarti bene la classe che ho pubblicato nel mio blog (trovi il link qui sotto), potrebbe esserti utile anche per semplificarti la vita...

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

gab82 Profilo | Junior Member

ma se io faccio:

DataGridView.DataSource = e_DataTable

se l'utente modifica i valori nella griglia aggiunge o elimina le righe nel dataset non ritrovo nulla. ma solo le righe originali!!!

che proprietà devo settare per fare in modo che le modifiche dell'utente nel datagridview vengano poi trasferite in automatico nel dataset?

x il dataadapter so già utilizzarlo per memorizzare da dataset a database

SSUPERPIPPO Profilo | Guru

Se le proprietà AllowUserToAddRow, AllowUserToDeleteRow, AllowUserToEditRow sono abilitate dovrebbe già funzionare.
E' chiaramente importante collegare il datasource del DataGridView al giusto DataTable.

Io lo uso normalmente e non ho mai avuto problemi.

Fammi sapere, ciao

Ale

http://blogs.dotnethell.it/alebadalin

gab82 Profilo | Junior Member

ora ci sono ma ho un altro problema:

quando salvo su database mi memorizza sempre il valore precedente (cioè chiamo la routine che memorizza sul db prima che il datagrid abbia memorizzato su dataset)

che evendo del datagrid devo usare per poter memorizzare correttamente su db?

ora usavo datagridview.RowLeave ma fa lo scherzo detto sopra.

tu che evento usi?

SSUPERPIPPO Profilo | Guru

Io di solito creo un oggetto BindingManager in questo modo:

Dim WithEvents bmb As BindingManagerBase

Quando effetto il binding del Database con il DataGridView lo imposto in questo modo:

bmb = Me.BindingContext(TuoDataTable)

A questo punto, prima di richiamare il metodo update del DataAdapter, richiamo il metodo EndCurrentEdit del BindingManagerBase:

bmb.EndCurrentEdit()
TuoDataAdapter.Update(TuoDataTable)

Fammi sapere se funziona, ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

gab82 Profilo | Junior Member

alla fine avendomi richiesto un bottone per abilitare l'utente alle modifiche ed un altro per salvare il problema non c'è più in quanto quando clicco salva la griglia ha già terminato sicuramente l'aggiornamento del dataset

ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5