繁体   English   中英

将数据表与条件合并

Merging DataTables with Condition

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想根据条件使用总和或平均值在列表中合并DataTable 例如:

private DataTable getData(List<DataTable> datas, string[] KeyColumnNames, string valueCol)
{
    List<DataTable> dataTables = datas;
    //if datas has 3 dataTables in it : dt1, dt2, dt3
    // then I want to create another dataTable dtAll which will have the sum of 
    // valueCol of all three datatables for the row which  will be conditioned using 
    // KeyColumnNames (can be multiple Primary keys)
    return dataTable;
}

将所有数据表视为完全相同但值不同,因为它们是来自相似架构但数据中心不同的表。 谢谢。

2 个回复

我会做

List<DataTable> dataTableList = dtList;
DataTable unionDataTable = new DataTable();
for(int i = 0; i < dtList.Count; i++)
    unionDataTable = Union(unionDataTable, dtList[i], "UnionDataTable");

Union方法是由类似以下内容的方法定义的

public static DataTable Union(DataTable First, DataTable Second, string strReturnedTableName)
{
    // Result table.
    DataTable table = new DataTable(strReturnedTableName);

    // Build new columns.
    DataColumn[] newcolumns = new DataColumn[First.Columns.Count];
    for (int i = 0; i < First.Columns.Count; i++)
        newcolumns[i] = new DataColumn(First.Columns[i].ColumnName, First.Columns[i].DataType);

    // Add new columns to result table.
    table.Columns.AddRange(newcolumns);
    table.BeginLoadData();

    // Load data from first table.
    foreach (DataRow row in First.Rows)
        table.LoadDataRow(row.ItemArray, true);

    // Load data from second table.
    foreach (DataRow row in Second.Rows)
        table.LoadDataRow(row.ItemArray, true);

    table.EndLoadData();
    return table;
}

我希望这有帮助。

编辑。 您可以将Action传递给方法,并在foreach块中使用它来执行所需的操作。

您的问题太含糊,无法提供任何实际代码,但您想执行LINQ Join 它的工作原理与SQL连接相同。 此问题显示查询和方法语法中的联接如何使用方法语法在linq中联接到sql? 您也可以在这里查看msdn文档; http://msdn.microsoft.com/en-us/library/bb311040.aspx

1 合并2个数据表,但添加一列

我有2个数据表,例如dt1,dt2。 两者都有相同的列,例如C1,C2,C3,C4和C5。 C5是数字列。 我想合并两个数据表,但同时我想在合并C1,C2,C3和C4相同的地方添加C5。 任何人都可以建议 ...

2 在C#中合并数据表

我有2个构造相同的数据表。 不同之处在于他们从何处获取数据。 由于第二个数据表正在通过PDF文件查找特定的关键字,因此将填充“页面”列。 然后,我合并2个数据表EXPECTING以获得文档列表,其中主键“ publicationID”仅列出一次,并且“ Pages”列用第二个数据表中 ...

3 将两个数据表合并到一个数据网格中

我在C#的DataSet中有两个DataTable(第一个DataTable包含一组唯一的标识符和一些关联数据,但是第二个DataTable每个外键标识符将包含多个记录),我想使用的是一个DataGrid,以显示第一个DataTable中的所有数据,并在该DataGrid中具有一列,以在下拉框中 ...

6 合并数据表-忽略第一行

如何合并忽略第一行的DataTable对象? 我需要与已合并的数据表合并的数据表来自已解析的CSV文件,并且其第一行(有时)仍包含标头,显然不应将标头放在结果表中... DataTable.Merge方法似乎没有提供这种选项。 最好的方法是什么? 只是预先删除第一行? 但这会影 ...

8 根据条件合并R中的数据表

首先,我试图通过 R 的数据表库的文档找到解决方案,但没有帮助。我有两个数据数据表,它们具有关键的性别和权重。我如何将它们与条件t1$gender == t2$gender和t1$weight &lt;= t2$weight合并t1$weight &lt;= t2$weight ? 这是表格: t ...

9 大量合并两个数据表

我有一个带有重复主键的多行数据表... 看起来像这样... 将数据合并为2个单行的C#代码应该是什么。 我已经研究过网络,但是没有什么关系。 我确信不会有重复数据。 我的意思是对于单列,我们将有一个单元格数据。 是否有可能获得如下输出... 最好的方法是什么,因为我必须处理用数以千计的记 ...

10 jQuery数据表或条件/不同条件

我使用的是服务器端的数据表 。 在对数据表进行初始化时,我将按照如下所示的get参数在最后一列上进行特定的搜索: 所以我做的没有用。 我正在尝试使用正则表达式搜索我的列的值是0还是9。但是正则表达式不起作用。 我需要做的是触发OR条件,以了解列值是0还是9。或者如果不可能,我需 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM