Windows Forms

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

2024年9月1日

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

実装コード

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

1.DataTable とダミーデータをリターンする関数を作成します。

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

1.ダミーデータ生成

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;
}

2.ダミーデータのバインド

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

実行結果

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

サンプルダウンロード

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

-Windows Forms