在下面的示例中,它返回2行,并且importrow不会引发任何异常,但是当我在foreach之后看到数据表时,它为空,它也应该有2行。
foreach (int refmDossierId in distinctREFMDossierIds) { DataRow[] datarows = _uc090_WingsIntegrationDataSet.WingsBookingInterface.Select("REFMDossierID =" + refmDossierId); if(datarows.Length>0) { foreach(DataRow dr in datarows) { _uc090_WingsIntegrationDataSet.WingsBookingInterface.Clear(); _uc090_WingsIntegrationDataSet.WingsBookingInterface.ImportRow(dr); } } //2. foreach master row foreach (UC090_WingsIntegrationDataSet.WingsBookingInterfaceRow row in _uc090_WingsIntegrationDataSet.WingsBookingInterface.Rows) {
Tim.. 5
只是一种预感,但是也许您正在清除从中获取行集合的表,这会导致DataRow集合处于分离状态?如果是这种情况,请尝试Clone
制作一个DataTable
具有相同架构但没有行的新商品,然后执行Import
:
foreach (int refmDossierId in distinctREFMDossierIds) { DataTable tempTable = _uc090_WingsIntegrationDataSet.WingsBookingInterface.Clone(); DataRows[] datarows = _uc090_WingsIntegrationDataSet.WingsBookingInterface.Select("REFMDossierID = " + refmDossierId); if (datarows.Length > 0) { foreach(DataRow dr in datarows) { tempTable.ImportRow(dr); } } foreach (UC090_WingsIntegrationDataSet.WingsBookingInterfaceRow row in tempTable.Rows) { // Do your processing here } }
顺便说一下,您当前的代码将在第一个ID之后擦除该表-如果您要处理的ID多个,则可能会出现问题。
只是一种预感,但是也许您正在清除从中获取行集合的表,这会导致DataRow集合处于分离状态?如果是这种情况,请尝试Clone
制作一个DataTable
具有相同架构但没有行的新商品,然后执行Import
:
foreach (int refmDossierId in distinctREFMDossierIds) { DataTable tempTable = _uc090_WingsIntegrationDataSet.WingsBookingInterface.Clone(); DataRows[] datarows = _uc090_WingsIntegrationDataSet.WingsBookingInterface.Select("REFMDossierID = " + refmDossierId); if (datarows.Length > 0) { foreach(DataRow dr in datarows) { tempTable.ImportRow(dr); } } foreach (UC090_WingsIntegrationDataSet.WingsBookingInterfaceRow row in tempTable.Rows) { // Do your processing here } }
顺便说一下,您当前的代码将在第一个ID之后擦除该表-如果您要处理的ID多个,则可能会出现问题。