DataGridView に DataTable をバインドする(サンプルあり)

📋 目次(クリックで展開)

Windows Fomrs の DataGridView に DataTable をバインドするサンプルの紹介です。ダウンロードリンクは記事下部に掲載しています。

実装コード

下記実装では、次の処理を行っています。

  1. DataTable とダミーデータをリターンする関数を作成します。
  2. フォームのロードタイミングで、1の関数を呼び出し、DataGridView の DataSource プロパティにダミーデータをバインドします。

ダミーデータ生成

private DataTable getData()
{
DataColumn[] primaryColumn = new DataColumn[1];
DataTable dataTable = new DataTable();
primaryColumn[0] = dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Age", typeof(int));
dataTable.Rows.Add(1, "じゅんや", 23);
dataTable.Rows.Add(2, "きょうこ", 25);
dataTable.Rows.Add(3, "えみ", 24);
dataTable.Rows.Add(4, "たつや", 28);
dataTable.Rows.Add(5, "なおき", 33);
dataTable.Rows.Add(6, "ゆうか", 25);
dataTable.Rows.Add(7, "まゆみ", 24);
dataTable.PrimaryKey = primaryColumn;
return dataTable;
}

ダミーデータのバインド

private void Form1_Load(object sender, EventArgs e)
{
this.dataGridView1.DataSource = getData();
}

実行結果

DataGridView に DataTable をバインドすると、DataGridView 側でバインドデータのスキーマを読み取り、自動的に列ヘッダーのラベルに、DataTable の列名を表示してくれます。また、列のソートやセル編集などの機能が自動的に有効化されています。

サンプルダウンロード

フレームワークは .NET 8 を利用しています。.NET Framework を利用される場合、先の実装コードをそのまま利用いただければと思います。

DataGridView_Bind_DataTable_CS.zip


💬 コメント