C# には、MIT、Oracle、および Difference と呼ばれる 3 つの DataTable があります。これら 3 つのテーブルを別の列としてグリッドビューに追加する方法を教えてください。以下に示すように、DataTableをグリッドビューにバインドする方法を知っています。しかし、いくつかのDataTableに対して同じことを行う必要があります。助けてください
dataGridView1.DataSource = MIT;
GridView のイメージを次に示します。
複数のデータテーブルを1つのデータテーブルにマージしてから、それをデータソースとしてdatagridviewに指定する必要があります。以下のリンクは、データテーブルを1つにマージするのに役立ちます。
http://www.aspnettutorials.com/tutorials/database/bind-mult-table-gridview-asp4.aspx
また
適切な結合を使用して、データを1つのテーブルに選択する必要があります。DataGridViewは、データを単一テーブル形式で表示します。DataGridViewには「複数テーブル」の概念はありません。
DataSet.Merge()
別々のオブジェクトからのDataRowsを1つにマージするのに役立ちます。
テーブルを組み合わせてからDataSet
、共通の列 (1 つあると思います!) を使用DataRelations
してテーブル間に作成する必要があると思います。DataGridView
これにより、 を のクエリの結果にバインドできますDataSet
。
詳細については、こちらを参照してください。
これら 3 つの異なるテーブルを GridView に追加したとしても (各 DataTable の列を追加します)。3 つすべてが異なる可能性があるため、各行にデータをどのように入力しますか。したがって、最初にこれらのテーブルを任意の関係に基づいて 1 つに結合する方法が必要です。その後、結果の DataTable を GridView に関連付け/バインドできます。
EnumerableRowCollection<DataRow> result =
from t1 in dt1.AsEnumerable()
join t1 in dt2.AsEnumerable()
on t1.Field<int>("KeyId") equals
t2.Field<int>("KeyId")
select new
{
KeyId = t1.Field<int>("KeyId"),
Column1 = t1.Field<string>("Column1"),
Column2 = t2.Field<string>("Column2"),
.
.
};
dataGridView1.DataSource = result.AsDataView();