1

我有两个存储过程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。

提前致谢。

4

2 回答 2

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")
                   };
于 2013-05-03T05:50:15.937 回答
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();
于 2013-05-03T05:36:28.543 回答