2014-03-18 65 views
0

定義:
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:OriTabl的定義E: ID:整數不爲空, 名稱:NCHAR(40)非空默認 '', 描述:NCHAR(90)空時, 主鍵(ID)

回答

0

嘗試使用 '中代替for' 循環'foreach'循環。在'foreach'循環內,你通常不能修改你正在迭代的集合項。

+0

我不在foreach循環中修改集合。一個數據庫中有三個不同的表格,其中只有一個存在這個問題。 – user3435230

相關問題