C# 将一行从数据表复制到另一行时为什么要复制记录

C# 将一行从数据表复制到另一行时为什么要复制记录,c#,datatable,dataset,C#,Datatable,Dataset,我试图将列上的所有行从一个数据表复制到另一个数据表。这样做时,记录会重复 这就是我正在做的: sltsrcTfobs.Rows中的foreachDataRow dtTP{ DataRow destRow=dtTPositions.NewRow; destRow[SystemOrdinal]=dtTP[PosID]; dtTPositions.Rows.AdddestRow; } 此列只有int值。例如,当它有10行时,值为1,2,3,4,5,6,7,8,9,10。当我将行复制到新数据表“dtTP

我试图将列上的所有行从一个数据表复制到另一个数据表。这样做时,记录会重复

这就是我正在做的:

sltsrcTfobs.Rows中的foreachDataRow dtTP{ DataRow destRow=dtTPositions.NewRow; destRow[SystemOrdinal]=dtTP[PosID]; dtTPositions.Rows.AdddestRow; } 此列只有int值。例如,当它有10行时,值为1,2,3,4,5,6,7,8,9,10。当我将行复制到新数据表“dtTPositions”时,它会将所有10个值复制10次,总共插入100行。

放置dtTPositions。在foreach循环之前清除以清除dtTPositions中的所有项

按如下方式修改您的代码:

dtTPositions.Clear();
foreach(DataRow dtTP in sltsrcTfobs.Rows) {
    DataRow destRow = dtTPositions.NewRow();
    destRow["SystemOrdinal"] = dtTP["PosID"];
    dtTPositions.Rows.Add(destRow);
}

您确定没有在外部环路中使用此选项吗?