当前位置:  开发笔记 > 后端 > 正文

ImportRow不起作用

如何解决《ImportRow不起作用》经验,为你挑选了1个好方法。

在下面的示例中,它返回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多个,则可能会出现问题。



1> Tim..:

只是一种预感,但是也许您正在清除从中获取行集合的表,这会导致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多个,则可能会出现问题。

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有