Cette Ligne Appartient Déjà À Cette Table

Je reçois un message d'erreur 'cette ligne appartient déjà à ce tableau," à partir du code suivant:

public static DataTable AddNewAllocations(string pCaseNo, ref DataTable pTable)
{
try
{
string sqlText = "SELECT UserID FROM tblUsers;";
aSqlQuery aQ = new aSqlQuery(sqlText, "table");
DataTable userTable = aQ.TableResult;
foreach (DataRow userRow in userTable.Rows)
{
int allocAlready = 0;
foreach (DataRow allocRow in pTable.Rows)
{
if (allocRow["FeeEarner"].ToString() == userRow["UserID"].ToString())
{
allocAlready = 1;                            
}
}
if (allocAlready == 0)
{
string strUser = userRow["UserID"].ToString();          
decimal fees = cTimesheet.UserFees(strUser, pCaseNo);
int intCaseNo = Int32.Parse(pCaseNo);
if (fees > 0)
{
Object[] array = new object[8];
array[0] = 0;
array[1] = intCaseNo;
array[2] = DateTime.Today;
array[3] = strUser;
array[4] = fees;
array[5] = 0;
array[6] = fees;
array[7] = true;
pTable.Rows.Add(array);
}
}
}
return pTable;
}
catch (Exception eX)
{
throw new Exception("cAllocation: Error in NewAllocations()" + Environment.NewLine + eX.Message);
}

Quand je marche à travers le code, je peux voir que l'erreur est levée sur la deuxième occasion, la ligne suivante est obtenue:

pTable.Rows.Add(array);

Étant donné que je créer un nouveau tableau d'objets chaque fois que le code d'entrée de la boucle, je ne vois pas pourquoi je reçois ce message d'erreur, ce qui me donne à penser la même ligne est ajoutée à de multiples reprises. Pourquoi le code voir chaque boucle que l'ajout de la même datarow lorsque la ligne est généré par un nouvel objet array à chaque fois?

  • Avez-vous une clé primaire dans la table?
  • Ses déconnecté de la table - mais non, je n'ai pas précisé de quelle colonne de la clé primaire - est-ce le problème?
  • Peut-être. Essayez de mettre des valeurs différentes à chaque fois et de voir le champ est à l'origine de ce
  • Vous n'avez pas à faire une nouvelle ligne? Comme DataRow DR = pTable.NewRow(); avant vous pouvez ajouter une ligne?
  • puis-je demander ce qui est arrivé à celui-ci?
  • J'ai ajouté le code qui a travaillé ci-dessous >>

InformationsquelleAutor PJW | 2012-08-15