2010-04-24 2 views
0

Je lis mon DataTable comme suit:Lire DataTable par RowState

foreach (DataRow o_DataRow in vco_DataTable.Rows) 
{ 
//Insert More Here 
} 

crasher; parce que j'insère plus d'enregistrements. Comment puis-je lire mon DataTable sans lire les nouveaux enregistrements? Puis-je lire par RowState?

Merci

+1

Quelle application utilisez-vous? Quelle langue? – Nifle

+0

Je vote pour que cela soit déplacé vers Stack Overflow. Vous n'avez pas besoin de faire autre chose que d'avoir un compte lié pour recevoir la question. Vous pouvez créer et lier les comptes plus tard. – ChrisF

+0

@RBrattas, veuillez associer vos comptes à http://stackoverflow.com/users/270429?tab=accounts, cela vous aidera si la question est automatiquement déplacée vers Stack Overflow. – Arjan

Répondre

0

Comme je ne sais pas quelle langue que vous utilisez, je ne peux donner des conseils généraux.

Dans la plupart des langues (?), Il n'est pas possible de faire un foreach sur une collection si vous modifiez la collection. Il y a deux façons courantes de gérer cela.

âne sauvage deviner le code pseudo suit:

// first way uses array notation (if possible) 
var no_of_rows = vco_DataTable.Rows.count(); 
for(var i = 0; i < no_of_rows; i++) { 
    DataRow o_DataRow = vco_DataTable.Rows[i]; 
    //Insert More Here 
} 

// The second way copies the data 
var my_copy = vco_DataTable.Copy() 
foreach (DataRow o_DataRow in my_copy.Rows) 
{ 
    //Insert More into vco_DataTable Here 
} 
copy.Dispose() // delete/destroy the copy 
+0

Nice! Je vous remercie! –

+0

DataTable o_DataTable_ReadOnly = vco_DataTable.Copy(); foreach (DataRow o_DataRow dans o_DataTable_ReadOnly.Rows) { // Insérer plus dans vco_DataTable ici } –