-1

2つのDataTableがあります

DataTable1:

id  name
--  ----
1   jhon
2   peter

DataTable2:

city     country
---      -------
Sevilla  Spain
Granada  Spain

IDは対応しています。これらのデータテーブルの列を連結する必要があります。

これは望ましい結果です。

id  name   city     country
--  ----   ----     -------
1   Jhon   Sevilla  Spain
2   Peter  Granada  Spain

何か案が?

ありがとう!

4

5 に答える 5

1

DataTable の名前は "DataTable1" と "DataTable2" であると仮定します。次のコードを使用して DataTable1 にマージできます。

Datatable1.Columns.Add("city", typeof(string));
Datatable1.Columns.Add("country", typeof(string));

for (int i = 0; i < Datatable1.Rows.Count; i++)
{
    Datatable1.Rows[i][2] = DataTable2.Rows[i][0].toString();
    Datatable1.Rows[i][3] = DataTable2.Rows[i][1].toString();
}
于 2013-02-15T11:47:03.303 に答える
0

以下のコードを使用します。

SqlDataSource1.ConnectionString = "--YOUR CONNECTION STRING--";
SqlDataSource1.SelectCommand = "select DataTable1.id,DataTable1.name,DataTable2.city,DataTable2.country from DataTable1,DataTable2
";
SqlDataSource1.DataBind();

幸運 !

于 2013-02-15T11:54:31.930 に答える
0

DataTable クラスの marge メソッドを使用できます

于 2013-02-15T11:54:46.867 に答える
0

table2 に主キーを追加し、両方のテーブル間に関係を追加する必要があります。

于 2013-02-15T11:43:14.557 に答える
0

あなたはlinqの恩恵を受けることができます

  1. データテーブルを IEnumerable にキャストします
  2. 次に、その上にlinqを適用できます。

    var results = from myRow in DataTable1.AsEnumerable()
    var results2 = from myRow in DataTable2.AsEnumerable()
    
    var result3= from row1 in results
                  join row2 in results2
                   select new
                  {
                      row1.id,
                      row1.name,
                      row2.city,
                      row2.country
                 };
    
于 2013-02-15T12:07:31.923 に答える