当前位置:编程学习 > C#/ASP.NET >>

急!!!!!!!!!如何把俩Dataset结果集放到一个DataGridView里展示

C#winfrom窗体上:
第一个Dataset结果集是取的数据库里某张表的多有字段名称

第二个Dataset结果集取的是XML文件里最底层节点的属性值,
 
俩个结果集的关系dataset1中字段的名称和dataset2中xml节点name属性的属性值相同


求:如何把这俩dataset结果集放到一个DataGridView里展示 C#winfrom datagridview dataset xml 数据库 --------------------编程问答-------------------- foreach (var item in ds1.Tables[0].Rows)
{
   dataGridView1.Rows.Add(...);
}
foreach (var item in ds2.Tables[0].Rows)
{
   dataGridView1.Rows.Add(...);
} --------------------编程问答-------------------- 不行啊!我用的是vs2008的 --------------------编程问答--------------------
引用 2 楼 u010929873 的回复:
不行啊!我用的是vs2008的


你表告诉我你是直接粘贴的。 --------------------编程问答-------------------- 第一个dataset里就一列数据,第二个dataset里多,
这是dataset1里的数据

这是dataset2里数据
他们的第一列是相同的 --------------------编程问答-------------------- 版主求个联系方式  回帖太慢了 --------------------编程问答-------------------- 你想做什么?合并它们? --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
foreach (var item in ds1.Tables[0].Rows)
{
   dataGridView1.Rows.Add(...);
}
foreach (var item in ds2.Tables[0].Rows)
{
   dataGridView1.Rows.Add(...);
}
怎么用啊?不会  求指导 --------------------编程问答--------------------
引用 6 楼 caozhy 的回复:
你想做什么?合并它们?

对,类似于左联接,但是现在是俩个dataset,怎么处理 --------------------编程问答--------------------
引用 6 楼 caozhy 的回复:
你想做什么?合并它们?

dataset1.Merge(dataset2, true, MissingSchemaAction.AddWithKey);
这个方法也用了,不好使啊 --------------------编程问答-------------------- 你需要左连接、右连接或者全连接?即,取出全部第一个表的数据,无论第二个表有没有还是取出第二个表的数据无论第一个有没有(因为第一个表只有一列,这种方式等同忽略第一个表),还是全连接,即取出左右两边的数据。

我假设是全连接
var query1 = dataset2.Tables[0].Rows.Cast<DataRow>().Select(x => new { name = x[name].ToUpper(), display = x["display"], hide = x[display], ... });
var query2 = dataset1.Tables[0].Rows.Cast<DataRow>().Select(x => x["name"].ToUpper()).Except(dataset2.Tables[0].Rows.Cast<DataRow>().Select(x => x["name"].ToUpper())).Select(x => new { name = x, display = "", hide = "", ... });
foreach (var item in query1.Concat(query2))
{
    dataGridView1.Rows.Add(new string[] { x.name, x.display, x.hide, ... });
} --------------------编程问答--------------------
引用 10 楼 caozhy 的回复:
你需要左连接、右连接或者全连接?即,取出全部第一个表的数据,无论第二个表有没有还是取出第二个表的数据无论第一个有没有(因为第一个表只有一列,这种方式等同忽略第一个表),还是全连接,即取出左右两边的数据。

我假设是全连接
var query1 = dataset2.Tables[0].Rows.Cast<DataRow>().Select(x => new { name = x[name].ToUpper(), display = x["display"], hide = x[display], ... });
var query2 = dataset1.Tables[0].Rows.Cast<DataRow>().Select(x => x["name"].ToUpper()).Except(dataset2.Tables[0].Rows.Cast<DataRow>().Select(x => x["name"].ToUpper())).Select(x => new { name = x, display = "", hide = "", ... });
foreach (var item in query1.Concat(query2))
{
    dataGridView1.Rows.Add(new string[] { x.name, x.display, x.hide, ... });
}

还是不太清楚,不过太晚了,明天晚上在说吧!明天还要上班呢!谢谢  版主早点休息! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 有了数据集那就直接绑定吧! --------------------编程问答--------------------
引用 13 楼 men52676521 的回复:
有了数据集那就直接绑定吧!

俩数据集,一个取的数据库的数据,一个取的XML的数据,怎样合并到达数据库里左联接的查询效果 --------------------编程问答-------------------- 既然DataSet2中的数据包含DataSet1中的字段,为何不把xml中的数据整理好后一起加载到DataGridView里面呢? --------------------编程问答-------------------- dataset1只有1列数据,dataset2包含dataset1,那你直接操作dataset2不就行了! --------------------编程问答--------------------
引用 15 楼 W2KExp 的回复:
既然DataSet2中的数据包含DataSet1中的字段,为何不把xml中的数据整理好后一起加载到DataGridView里面呢?

set1里的数据set2里面不一定有,打个比方:set1里存的是全班所有的学生,而set2里放的是参加考试的学生,我要咋样才能做到类似于数据库里左联接查询后的结果 --------------------编程问答--------------------
引用 16 楼 porenasckx 的回复:
dataset1只有1列数据,dataset2包含dataset1,那你直接操作dataset2不就行了!

set1里的数据set2里面不一定有,打个比方:set1里存的是全班所有的学生,而set2里放的是参加考试的学生,我要咋样才能做到类似于数据库里左联接查询后的结果
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,