C#如何将两个DataTable Row合并为一行

     2023-04-12     301

关键词:

【中文标题】C#如何将两个DataTable Row合并为一行【英文标题】:C# How do i merge two DataTable Row into one row 【发布时间】:2021-01-10 01:10:00 【问题描述】:

我有一个如下所示的数据表,它是从数据库中填充的

我怎样才能使结果如下所示

抱歉我的解释不好,非常感谢

【问题讨论】:

做一个 GROUP BY.. 问题是,这个数据表我已经手动从另一个数据表中插入行,有没有用C#来di呢? @KuHan 我为C#添加了answer,看看吧。 【参考方案1】:

你需要这样写:

Select
PN,
[Description],
Sum(January) AS January,
Sum(February) AS February,
Sum(March) AS March,
Sum(April) AS April
FROM [YourTable]
GROUP BY
PN,
[Description]

【讨论】:

问题是,这个数据表我已经从另一个数据表手动插入行,有没有用C#来di呢?【参考方案2】:

如果您想使用 Datatable 而不是 SQL,您可以使用:

dt = dt.AsEnumerable()
       .GroupBy(r => new PN = r["PN"], Description = r["Description"])
       .Select(g => 
         
            var row = dt.NewRow();

            row["PN"] =  g.Key.PN;
            row["Description"] = g.Key.Description;
            row["January"] =  g.Sum(r => r.Field<int>("January"));
            row["February"] =  g.Sum(r => r.Field<int>("February"));
            row["March"] =  g.Sum(r => r.Field<int>("March"));
            row["April"] =  g.Sum(r => r.Field<int>("April"));
            
            return row;
       
       )
       .CopyToDataTable();

见:How do I use SELECT GROUP BY in DataTable.Select(Expression)?

【讨论】:

c#实现两个(datatable)数据合并

...字段依次赋值的代码,性能就有所下降,下列将介绍合并DataTable的几种方法主要介绍三种方案方案一【For循环+RowFilter】1dt_All.Rows.Clear 查看详情

c#中怎样用for循环为datatable的每一行每一列都赋值为“*”?

...p; table.Row[i][j]="*";    参考技术ADataTabletable=newDataTabel();DataRowrow=newDataRow();row.add("row");Columnc=newColumn();c.add("aaa");row.addColumn(c);table.addRow(row);大概思路就是这样的 参考技术Bforeach(varrintable.rows)fo... 查看详情

c#中两个列名相同的datatable,如何将他们数据加到一起?

有例子就好了//原本的两个datatable1和datatable2DataTableDataTable1,DataTable2//两个结构一样的DT合并DataTablenewDataTable=DataTable1.Clone();object[]obj=newobject[newDataTable.Columns.Count];for(inti=0;i<DataTable1.Rows.Count;i++)DataTable1.Rows[i].ItemArray.CopyTo(obj,0);newDa... 查看详情

合并双语翻译文本也很简单

参考技术A昨天的教程里面我们学习了如何提取双语翻译文本,那么如果我有两篇文档一篇是英文原文,另一篇是汉语译文,如何将他们一一对应合并在一起呢?openrefine中也有很好的解决方案。一、在openrefine中创建两个项目,分... 查看详情

如何将两个 DataTable 与内部连接连接在一起

】如何将两个DataTable与内部连接连接在一起【英文标题】:HowtojointwoDataTabletogetherwithinnerjoin【发布时间】:2015-08-0609:47:45【问题描述】:所以我有2个数据表,我想以与sqlserver中的内部联接合并的相同方式将它们合并为1个。一个... 查看详情

c#两个datatable合并

...----------1a2b3cDt2-----------10a10b10c10d所要得到的结果是。新的DataTable11a12b13c10d楼主可以这样调用:Dt1=MergeDataTable(Dt1,Dt2,"ID");下面是函数定义:/**************************************************函数名:MergeDataTable**函数功能:合并DataTable**... 查看详情

vb.net如何将两个datatable合并

我现在有两个datatable一个叫bill一个叫两个表中pRunID字段关联我想要除了这个字段的其他字段,生成一个新的datatable显示到表格控件中参考技术A自己新建一个table循环两个表数据取自己需要的放在自己新建的table。主要对vb不熟应... 查看详情

c#如何撰写将一个datatable的所有奇数行提取出来生成一个表,所有偶数行提取出来生成一个表?

...ex%2==1).ToArray();但要生成Table会稍微麻烦点:之后再建两个DataTable,再分别Import两个List中的Row(用foreach或for循环都行)。如果用值字段来区分奇偶行,调整一下LINQ中的Where条件就行。参考技术ADatatable还有DataSet都是只读的,不能动态... 查看详情

c#中这样将dataset转换为datatable?

...t;);//自己写的方法intr=ds.Tables[0].Rows.Count;//取出的数目=6条DataTabledt=newDataTable();dt=????//把SQL语句查询出来的全部结果显示在dt上面..dt=ds.Tables[0];是不对的我需要的是dt的值为sql查询出来的数据.怎么获得你既然要ds.Tables[0]那你的DT就... 查看详情

将两个mysql表合并为一行

】将两个mysql表合并为一行【英文标题】:Combiningtwomysqltablesintoonerow【发布时间】:2019-11-0814:38:35【问题描述】:我正在尝试将几个表格组合成一行。团队表:+----+-------+|id|team|+----+-------+|10|Team1||11|Team2||12|Team3|+----+-------+位置表... 查看详情

c#将datatable一行放入另一个datatable中

http://blog.csdn.net/huyu107/article/details/53509171  概述从一个DataTable中取一行放到另一个DataTable里报错:该行已经属于另一个表。第一种方法:DataTabledt=newDataTable();dt=ds.Tables["All"].Clone();//克隆All的结构传递给dtDataRow[]dr= 查看详情

将 DataTable 转换为字典 C#

】将DataTable转换为字典C#【英文标题】:TransformaDataTableintoDictionaryC#【发布时间】:2013-11-1120:08:14【问题描述】:我想知道如何将DataTable转换为Dictionary。我做了这样的事情。usingSystem.Linq;internalDictionary<string,object>GetDict(DataTable... 查看详情

c#中同一个datatable中的如何把重复的记录合并起来,

Datatable中有两个列名,第一个列名是:名字,第二个列名是:数量这里的有这样的记录:记录1、[名字]=李洋[数量]=13记录2、[名字]=李洋[数量]=18我想要的结果是:[名字]=李洋[数量]=31请给出代码,谢谢!!!现在因为特殊... 查看详情

c#合并多个结构相同的datatable

publicDataTableGetAllDataTable(DataSetds)DataTablenewDataTable=ds.Tables[0].Clone();//创建新表克隆以有表的架构。object[]objArray=newobject[newDataTable.Columns.Count];//定义与表列数相同的对象数组存放表的一行的值。for(inti=0;i<ds.Ta 查看详情

如何将两个datatable横向合并成一个datatable

DataTable有合并的方法Merge但是两张表结构必须一样追问是把一张表接在另一张的后面借由肯定不相同的怎么接?追答回复的内容百度说字数太多只能用附件的方式参考技术A如果在数据库SQL上合并,可以使用SQL的JOIN如果.NET开发中Dat... 查看详情

c#如何将多个单行多列的datatable合并成一个单行多列的datatable,表中内容是string..

...这种情况需要自己定义一个函数。我可以举个例子Dt1=MergeDataTable(Dt1,Dt2,"ID");下面是函数定义:...参考技术A合并datatable,手动创建datatable,然后将数据合并到第一个的指定的行和列中,这个我做过,合并三个table 参考技术B... 查看详情

聚合 C# 数据集时,如何将 DataSet 转换为 .Load() 的 DataTable 数组?

】聚合C#数据集时,如何将DataSet转换为.Load()的DataTable数组?【英文标题】:WhenaggregatingC#datasets,howdoIconvertaDataSetintoanDataTableArrayfor.Load()?【发布时间】:2013-05-0401:30:42【问题描述】:我正在使用.NET4.0。我正在尝试将许多具有相同... 查看详情

如何在 C# 中将 DataTable 转换为通用列表 [重复]

】如何在C#中将DataTable转换为通用列表[重复]【英文标题】:HowtoConvertDataTabletoGenericListinC#[duplicate]【发布时间】:2016-12-1608:54:08【问题描述】:我需要将C#DataTable转换为通用集合列表DataTableColumnsRespectively1.EmpId(thisisIntDataType)2.EmpNam... 查看详情