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
Problemi nel copiare una riga da una DataTable ad un altra
mercoledì 22 settembre 2010 - 11.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 3.5
|
Windows 7
|
Visual Studio 2008
Lallost
Profilo
| Newbie
5
messaggi | Data Invio:
mer 22 set 2010 - 11:32
Vi spiego il mio problema che immagino sia molto semplice ma dal quale non so come uscirne.
Io ho due DataTable, una è popolata e una no. Io voglio copiare solo alcune righe dalla prima e metterle nella seconda per popolarla. Nello specifico voglio copiare tutte le righe della prima DataTable
che alla colonna n° 3 contengono la lettera "A". Il codice che ho scritto è il seguente:
//creazione tabelle
DataTable table1 = new DataTable();
DataTable table2 = new DataTable();
//poi popolo la table1 con un DataAdapter
//in questo ciclo scelgo le righe da aggiungere alla table2
foreach (DataRow rr in table.Rows)
{
if (rr[3].ToString() == "A")
{
table2.Rows.Add(rr);
}
}
L'errore che mi dà quando eseguo il codice è: ArgumentExeption non è stata gestita: La riga appartiene già a un'altra tabella.
Come risolvo? Cosa c'entra il fatto che la riga sia già in un altra tabella? Non la posso aggiungere in un'altra?
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 22 set 2010 - 11:48
Ciao.
Passare i valori come hai fatto tu non si può fare perchè effettivamente l'oggetto datarow in questione è gia presente nella prima tabella.
Puoi fare in questo modo: (solo però se le due tabelle sono IDENTICHE come struttura, nessun campo in più, nessun campo in meno)
table2.LoadDataRow(rr.ItemArray, false);
Ciao ciao
Cristian Barca
Lallost
Profilo
| Newbie
5
messaggi | Data Invio:
mer 22 set 2010 - 11:59
Grazie mille, cosi funziona... però che complicazioni per una cosa cosi semplice.... mah
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mer 22 set 2010 - 12:02
ciao.
Non è tanto una complicazione. Alla fine ogni riga di una tabella è un riferimento ad un oggetto in memoria.
Tu riesci a stare in due parti contemporaneamente? Stessa cosa vale per gli oggetti datarow.
Con il metodo loadDataRow viene creato un nouvo oggetto dataRow e popolato con i valori del riferimento alla riga da copiare.
Ciao ciao
Cristian Barca
Lallost
Profilo
| Newbie
5
messaggi | Data Invio:
mer 22 set 2010 - 12:46
Ottimo, grazie mille della spiegazione. E' la prima volta che scrivo su sto forum, efficienza perfetta direi :D
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 !