更新数据集时发生并发冲突

本文关键字:并发 冲突 数据集 更新 | 更新日期: 2023-09-27 17:50:55

定义:
XMLStream:XML流包含一些行信息;

目前,我面临一个名为"并发冲突"的奇怪问题,尽管我做了一些调试工作,但仍然无法找到原因。所以,请帮帮我,提前谢谢。

1:通过从xml流中读取来填充数据集:xmlDataSet.ReadXML(XMLStream);

2:从数据集中获取dataTable:DataTable xmlTable = xmlDataSet.Tables[OriTable.TableName];

3:修改数据表的每一行信息

foreach(DataRow xmlRow in xmlTable.rows)
{
    DataRow targetRow = SearchRow(xmlRow); // search the xmlrow from the OriTable, and return it, in here, we assume it exists.
    targetRow.ClearError();
    targetRow.BeginEdit();
    foreach(DataColumn xmlCol in xmlTable.columns)
    { 
        if( OriTable.Columns.Contains(xmlCol.ColumnName)
        {
            // Modifying targetRow
        }
    }
    targetRow.EndEdit();
}
if( // no error flag has been set)
{
    OriTable.DataSet.UpdateTable(); // this is where the error appears
}

请帮帮我,谢谢

PS:OriTable的定义:ID:int不为null,名称:nchar(40(不是null默认值",说明:nchar(90(为空,主键(id(

更新数据集时发生并发冲突

尝试使用"for"循环而不是"foreach"循环。在"foreach"循环中,通常不能修改正在迭代的集合中的项。。