[VB.NET] Editare e salvare i dati direttamente da una griglia

lunedì 04 febbraio 2008 - 18.15

marco.santilli Profilo | Junior Member

Linguaggio: VB.NET
Database: ACCESS
Griglia: JANUS-GRIDEX

Carico i miei dati in una griglia.
Abilito l'editing dei dati.

Modifico i dati ma non li salva.

Con VB6, modificato i dati nella griglia, automaticamente me li modificava nel DB

Alla griglia gli passo un DataSet di dati

Se ad esempio aggiorno i dati nella griglia, chiudo la form e la riapro i dati sono modificati, perchè il dataset viene modificato, se chiudo il programma e lo riapro le modifiche non ci sono più

C'è un metodo per forzare il salvataggio

Ciao e grazieeeeeeeeee

SSUPERPIPPO Profilo | Guru

>Linguaggio: VB.NET
>Database: ACCESS
>Griglia: JANUS-GRIDEX
>
>Carico i miei dati in una griglia.
>Abilito l'editing dei dati.
>
>Modifico i dati ma non li salva.
>
>Con VB6, modificato i dati nella griglia, automaticamente me
>li modificava nel DB
>
>Alla griglia gli passo un DataSet di dati
>
>Se ad esempio aggiorno i dati nella griglia, chiudo la form e
>la riapro i dati sono modificati, perchè il dataset viene modificato,
>se chiudo il programma e lo riapro le modifiche non ci sono più
>
>C'è un metodo per forzare il salvataggio
>
>Ciao e grazieeeeeeeeee
>

Ciao

la gestione degli accessi al Database attraverso i DataSet viene detta anche "modalità disconnessa", questo perchè viene aperta una connessione solo per consentire al DataAdapter di popolare il Dataset (metodo fill) con i dati provenienti dal database.
Viene creata in questo modo una copia lato client dell'origine dati (DataTable).

Le modifiche apportate al dataset non si riperquotono sul database fisico fino a quando non richiami il metodo Update del dataadapter utilizzato per il popolamento.

Se vuoi prendere qualche spunto sul mio blog (link soyyo) trovi una classe già pronta x gestire gli accessi al dbase in modo semplificato.

Ciao

Ale


http://blogs.dotnethell.it/alebadalin

marco.santilli Profilo | Junior Member

Ok ottimo

Quindi fammi capire una cosa

Se eseguo un DATASET e popolo la mia griglia e ci lavoro
Poi alla fine faccio UPDATE, lui mi sovrascrive tutti i DATI che ho tirato su con il DATASET nel DATABASE?????

Fammi sapere

Ciao e grazieeeeeeeee

SSUPERPIPPO Profilo | Guru

>Ok ottimo
>
>Quindi fammi capire una cosa
>
>Se eseguo un DATASET e popolo la mia griglia e ci lavoro
>Poi alla fine faccio UPDATE, lui mi sovrascrive tutti i DATI
>che ho tirato su con il DATASET nel DATABASE?????
>
>Fammi sapere
>
>Ciao e grazieeeeeeeee

A grandi linee è così... ma ci sono delle regole:

Il DataAdaptec crea attreverso l'oggetto CommandBuilder le istruzioni di INSERT/UPDATE/DELETE necessarie per l'aggiornamento del Database. Il CommandBuilder è però in grado di generare automaticamente queste istruzioni solo se per la tabella di origine è impostata una PK (Primary Key) e a condizione che l'origine del DataTable non sia una JOIN di più tabelle fisiche.

Quindi se tu crei un DataTable con il metodo Fill del DataAdapter partendo da un'unica tabella dotata di PK, il metodo Update del DataAdapter si occuperà automaticamente della sincronizzazione con database fisico.

Diversamente puoi creare tu le tue istruzioni INSERT/UPDATE/DELETE del CommandBuilder personalizzandole a tuo piacimento per gestire anche quei casi non contemplati precedentemente o per avere un maggiore controllo dell'operazione di aggiornamento.

Spero di essermi spiegato, fai qualche prova e fammi sapere

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin
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