【C#】DataSet、DataTable、およびDataGridView

C#でDataSet、DataTable、およびDataGridViewを使用する方法について説明します。

用語

  1. DataSet(データセット):DataSetは、データソースから取得したデータのインメモリキャッシュであり、切断されたデータと連携するために設計されています。1つ以上のDataTableオブジェクトを含み、テーブル間の関係、制約、およびその他の情報を持つことができます。
  2. DataTable(データテーブル):DataTableは、インメモリデータの1つのテーブルを表します。行と列で構成され、データベースのテーブルに似ています。各列は特定のデータ型を持ち、各行はそれらの列に対応する値のセットを表します。
  3. DataGridView(データグリッドビュー):DataGridViewは、タブル形式でデータを表示および編集するために使用される.NETコントロールです。データの視覚的な表現を提供し、ユーザーがそれと対話するのを容易にします。

これらを組み合わせて使用する方法

この例では:

  • 最初にフォーム(MainForm)を作成し、その中にDataGridViewコントロールを初期化します。
  • 次に、LoadData()メソッドで、DataSetDataTableを作成し、いくつかのサンプルデータでそれを埋めます。
  • 最後に、DataGridViewDataTableにバインドし、そのDataSourceプロパティをDataTableに設定します。

これにより、DataTableに加えられた変更はDataGridViewに反映され、その逆もまた然りです。また、ユーザーの対話に基づいて特定のアクションを実行するために、DataGridViewのさまざまなイベント(選択変更、セルクリックなど)を処理することもできます。

using System;
using System.Data;
using System.Windows.Forms;

namespace DataGridViewExample
{
    public partial class MainForm : Form
    {
        private DataSet dataSet;
        private DataTable dataTable;
        private DataGridView dataGridView;

        public MainForm()
        {
            InitializeComponent();
            InitializeDataGridView();
            LoadData();
        }

        private void InitializeDataGridView()
        {
            // DataGridViewの初期化
            dataGridView = new DataGridView();
            dataGridView.Dock = DockStyle.Fill;
            dataGridView.ReadOnly = true;

            // フォームにDataGridViewを追加
            Controls.Add(dataGridView);
        }

        private void LoadData()
        {
            // データの読み込み
            dataSet = new DataSet("MyDataSet");

            // DataTableの作成
            dataTable = new DataTable("MyDataTable");
            dataTable.Columns.Add("ID", typeof(int));
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Age", typeof(int));

            // DataTableに行を追加
            dataTable.Rows.Add(1, "John", 30);
            dataTable.Rows.Add(2, "Alice", 25);
            dataTable.Rows.Add(3, "Bob", 35);

            // DataSetにDataTableを追加
            dataSet.Tables.Add(dataTable);

            // DataGridViewをDataTableにバインド
            dataGridView.DataSource = dataTable;
        }

        // 選択変更などのイベントを必要に応じて処理できます
        private void DataGridView_SelectionChanged(object sender, EventArgs e)
        {
            // 選択変更イベントの処理
        }

        // 他のメソッドやイベントハンドラをここに追加できます
    }
}

C#,データベース

Posted by hidepon