You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决DataGridView中XML参数数据被覆盖,合并显示IDCSITORD=1和5的数据

解决DataGridView合并显示两个XML参数数据的问题

当前代码每次循环都会重新执行查询与绑定操作,导致第二次的数据源直接覆盖第一次的结果。要实现合并显示IDCSITORD为1和5的数据,需要先收集两次查询的结果集,再统一绑定到DataGridView。

修改思路

  • 先创建一个用于存储合并数据的容器(如DataTable)
  • 循环查询时,将每次的查询结果追加到合并容器中
  • 循环结束后,将合并后的容器作为数据源绑定到DataGridView

修改后的代码示例

List<string[]> parametrosList = new List<string[]>();

// 添加IDCSITORD = 1的参数
string[] parametros1 = filtro.GetParametros();
string xmlParametros1 = parametros1[1];
xmlParametros1 = ModificarValorIDCSITORD(xmlParametros1, 1);
parametros1[1] = xmlParametros1;
parametrosList.Add(parametros1);

// 添加IDCSITORD = 5的参数(修正原代码注释与实际值不一致的问题)
string[] parametros2 = filtro.GetParametros();
string xmlParametros2 = parametros2[1];
xmlParametros2 = ModificarValorIDCSITORD(xmlParametros2, 5);
parametros2[1] = xmlParametros2;
parametrosList.Add(parametros2);

dgVisao.DataBindings.Clear();
DataTable mergedData = null;

foreach (var parametros in parametrosList)
{
    // 查询当前参数对应的数据源
    ctrl.List(parametros);
    var currentSource = ctrl.Provider.GetBindingSource;
    
    // 将当前数据复制到合并表中
    DataTable currentTable = ((DataView)currentSource.DataSource).ToTable();
    if (mergedData == null)
    {
        mergedData = currentTable.Copy();
    }
    else
    {
        mergedData.Merge(currentTable);
    }
}

// 绑定合并后的数据源到DataGridView
if (mergedData != null)
{
    var bindingSource = new BindingSource();
    bindingSource.DataSource = mergedData;
    dgVisao.DataSource = bindingSource;
    Navigator.BindingSource = bindingSource;

    // 设置列头文本
    if (filtro.TipoOperacao == SASistemas.Controls.Wms.Filtros.enumTipoOperacao.Saida)
        NOMCLIFOR.HeaderText = "Cliente";
    else
        NOMCLIFOR.HeaderText = "Fornecedor";

    dgVisao.Focus();
    this.UpdateGauges();
}

关键说明

  1. 避免重复绑定:不再在循环内执行绑定操作,而是先收集所有数据再一次性完成绑定
  2. 数据合并:使用DataTable.Merge方法将两次查询的结果合并,保留所有行数据
  3. 注释修正:同步修正原代码中注释与实际参数值不一致的问题,避免逻辑混淆

内容的提问来源于stack exchange,提问作者Bruno Ananias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:40:10