1

2 つのストアド プロシージャ summary1 と summary 2 があり、ストアド プロシージャのデータを C# の 2 つの異なるデータ テーブル dt1 と dt2 に取得します。

次のような特定の形式で 3 番目のデータ テーブル 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 データをグリッドビューにバインドします。

前もって感謝します。

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

これをストアド プロシージャに入れ、summary 3 として、gridview のデータソースを作成できます。

Grdview.DataSource=returnedDataset.Table[0];
Grdview.DataBind();
于 2013-05-03T05:36:28.543 に答える