Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Confronto DataTable
lunedì 11 maggio 2015 - 11.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Windows 7
|
Visual Studio 2010
|
SQL Server 2008 R2
mmjc23
Profilo
| Newbie
47
messaggi | Data Invio:
lun 11 mag 2015 - 11:44
Buongiorno a tutti...
Sto uscendo pazzo...sembra una cosa semplice e invece non riesco ad uscirne fuori.
Ho un Datatable DT1 che contiene il contenuto di una tabella con due colonne; supponiamo ID e Descrizione dove ID è la chiave primaria.
Siccome le modifiche alla tabella SQL possono essere effettuate anche da altre fonti, vorrei, supponiamo ciclicamente, andare a ricaricarmi i dati contenuti nella tabella in un DT2 con la stessa struttura e la stessa chiave primaria.
Quello che vorrei ottenere, è un nuovo DataTable DT1 aggiornato dal quale, richiamando il metodo "GetChanges", ottengo solamente i record che sono stati Aggiunti, Modificati ed Eliminati.
Siccome i due DataTable sono "statici" (ovvero non vengono modificati all'interno del codice, ma le tabelle SQL vengono modificate esternamente al programma), i metodi "GetChanges" restituiscono, ovviamente, un DataTable "Nothing".
Il Merge della seconda tabella nella prima, invece, sembra funzionare (a mio avviso) molto male...ovvero...
Se al parametro "PreserveChanges" del metodo "Merge" assegno il valore "True":
-tutte le righe presenti sia in DT1 che in DT2, me le segna come "Modified" (anche se non sono state modificate) e con i valori originali di DT1
-tutte le righe eliminate (non presenti in DT2), rimangono in DT1 segnate come "Unchanged"
-tutte le righe aggiunte (presenti solo in DT2), vengono aggiunte a DT1 e segnate come "Unchanged"
Se al parametro "PreserveChanges" del metodo "Merge" assegno il valore "False":
-tutte le righe presenti sia in DT1 che in DT2, me le segna come "Unchanged" (con i valori aggiornati se sono state modificate)
-tutte le righe eliminate (non presenti in DT2), rimangono in DT1 segnate come "Unchanged"
-tutte le righe aggiunte (presenti solo in DT2), vengono aggiunte a DT1 e segnate come "Unchanged"
Grazie anticipatamente a chi vorrà aiutarmi ad uscire da questo groviglio...vorrei evitare di effettuare 10000 cicli "for" sui DataTable, ma temo non ci sia via d'uscita.
Torna su
Stanze Forum
Elenco Threads
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 !