我有两个存储过程summary1和summary 2 并将存储过程数据放入c#
中的两个不同的数据表dt1和dt2中我希望以特定格式获取第三个数据表dt3中的数据 喜欢
如果dt1表是 -
name | m1 | m2 | m3 |
abc | 12 | 4 | 8 |
dcd | 1 | 5 | 7 |
dt 2表数据为 -
name | m1 | m2 | m3 |
abc | 5 | 5 | 5 |
dcd | 5 | 5 | 5 |
两个数据表的列数相同,列名相同。
我希望以这种格式输出dt3
name | m1 | m2 | m3 |
abc | 12/5 | 4/5 | 8/5 |
dcd | 1/5 | 5/5 | 7/5 |
并将数据表dt3数据绑定到gridview。
提前致谢。
答案 0 :(得分:2)
您可以使用Linq,
var dt3 = from p in dt1.AsEnumerable()
join q in dt2.AsEnumerable() on p.Field<string>("name") equals q.Field<string>("name") into UP
from q in UP.DefaultIfEmpty()
select new
{
name = p.Field<string>("name"),
m1 = p.Field<string>("m1") + "/" + q.Field<string>("m1"),
m2 = p.Field<string>("m2") + "/" + q.Field<string>("m2"),
m3 = p.Field<string>("m3") + "/" + q.Field<string>("m3")
};
答案 1 :(得分:0)
这是填充数据表dt3的SQL查询。 将table1和table2替换为实际的表名。
SELECT dt1.name,
CAST(dt1.m1 AS VARCHAR) + '/' + CAST(dt2.m1 AS VARCHAR) as m1,
CAST(dt1.m2 AS VARCHAR) + '/' + CAST(dt2.m2 AS VARCHAR) as m2,
CAST(dt1.m3 AS VARCHAR) + '/' + CAST(dt2.m3 AS VARCHAR) as m3
FROM table1 dt1
INNER JOIN table2 dt2
ON t1.name=t2.name
你可以把它放在存储过程中说摘要3并制作gridview的数据源。
Grdview.DataSource=returnedDataset.Table[0];
Grdview.DataBind();