c#.net 如何将两个datatable拼接成一个Datatable
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#.net 如何将两个datatable拼接成一个Datatable相关的知识,希望对你有一定的参考价值。
有两个DataTable 希望竖着拼接成一个Datatable
参考技术A 调用datatable的Merge方法,Merge 是数据行的物理合并。table1.Merge(table2);
这样实现的将table2中与table1中相同的字段合并到table1中,如果想要实现你所要的结果就是将table1与table2的字段相同,这样物理合并出的结果就是你想要的 参考技术B 连个datatable表名和对应的列名一样的话就用table1.Merge(table2),
不一样就循环加喽 参考技术C dataset 有个合并函数
using (SqlConnection connection =
new SqlConnection(connectionString))
SqlDataAdapter adapter =
new SqlDataAdapter(
"SELECT CustomerID, CompanyName FROM dbo.Customers",
connection);
connection.Open();
DataSet customers = new DataSet();
adapter.FillSchema(customers, SchemaType.Source, "Customers");
adapter.Fill(customers, "Customers");
DataSet orders = new DataSet();
orders.ReadXml("Orders.xml", XmlReadMode.ReadSchema);
orders.AcceptChanges();
customers.Merge(orders, true, MissingSchemaAction.AddWithKey);
或datatable也一样
table1.Merge(table2);本回答被提问者采纳
如何将三张表拼接成一张表?
【中文标题】如何将三张表拼接成一张表?【英文标题】:How to concatenate three tables into one table? 【发布时间】:2015-08-11 07:29:42 【问题描述】:Table1 tblUserBadges
uid scenid badgeid timestamp
u0 s1 b0 t1
u0 s1 b1 t2
u0 s2 b0 t3
u1 s1 b3 t4
u1 s1 b4 t5
Table2 tblUserWarnings
uid scenid warningid timestamp
u0 s1 w0 t1
u0 s1 w1 t2
u0 s2 w2 t3
u1 s1 w3 t4
u1 s1 w4 t5
Table3 tblUserScenScores
uid scenid score attempts timestamp
u0 s1 20 3 t1
u1 s1 22 7 t2
u0 s2 -5 1 t3
结果:Tabl4 viewUserScenarioStats
uid scenid badges warnings score attempts
u0 s1 b0, b1 w0, w1 20 3
u0 s2 b0 w2 -5 1
u1 s1 b3, b4 w3, w4 22 7
我尝试如下查询:
CREATE VIEW viewUserScenarioStats AS
SELECT uid.tblUserBadge, GROUP_CONCAT(scenid).tblUserWarnings,
GROUP_CONCAT( badgeid).tblUserScrores, warningid.tblUserWarnings, score, attempts
如何连接三个表。 但不工作......有什么帮助吗?
【问题讨论】:
【参考方案1】:你可以这样做
select s.uid ,
s.scenid,
group_concat(distinct b.badgeid) badges,
group_concat(distinct w.warningid) `warnings`,
s.score,
s.attempts
from tblUserScenScores s
join tblUserWarnings w on(s.uid = w.uid and s.scenid = w.scenid)
join tblUserBadges b on(s.uid = b.uid and s.scenid = b.scenid)
group by s.uid ,s.scenid
DEMO
View Demo
【讨论】:
你能告诉我吗?你是怎么做到的?对我有什么建议吗?把你的秘钥给我…… @PrashantTapase 没什么特别的,我刚刚加入了您的表格,然后根据相同的 uid 对结果进行分组,场景中每个分数都有来自徽章和警告表的多行,因此使用 group_concat 我合并了徽章并警告每个分数作为逗号分隔的列表,但 w0、w1 出现的次数超过 1,因此在group_concat
中添加了不同的选项,以便仅在我认为这对您有意义时才选择相关的警告和徽章以上是关于c#.net 如何将两个datatable拼接成一个Datatable的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET把数据查询出来保存在了一个datatable里面了,之后我想把这个datatable的数据导入到access数据库