【Winforms】DataSetを使ったデータ操作を学ぼう!(コードで記述)


このレッスンで学べること

  • DataSetって何?
    • データベースの情報をプログラム内で管理するための仕組み。
    • 画面にデータを表示したり、データを操作したりする際に役立ちます!
  • データを画面に表示する方法
    • データベースからデータを取得して、表形式で表示します。
  • プログラムでデータを操作する方法
    • DataSetを使ったコード中心の操作を学びます。

1. DataSetって何?

  • DataSetは、データベースから取ってきたデータを「プログラム内で一時的に保存」するためのツールです。
  • 例えると:
    • DataSetは「メモ帳」のようなもの。データベースからコピーした内容をメモ帳に貼り付けて使います。

2. このレッスンで作るもの

  • データベースから「従業員リスト」を取得して、画面上に表形式で表示します。
  • 画面にはDataGridViewというコントロールを使ってデータを表示します。

3. 実際に作ってみよう!

手順 1: プロジェクトの準備

  1. Visual Studioを開きます
  2. [ファイル] > [新規作成] > [プロジェクト]を選択します。
  3. 「Windows Forms アプリ (.NET)」を検索して選びます。
  4. プロジェクト名を「DataSetExample」として作成をクリックします。

手順 2: 必要なデータベースを用意

データベースにEmployeesというテーブルがあると仮定します。

テーブル例:

EmployeeIDNameDepartment
1山田 太郎総務部
2佐藤 花子営業部
3鈴木 一郎IT部

手順 3: プログラムでデータを取得して表示する

コードを記述する:

  • ソリューションエクスプローラーでForm1.csを開きます(ダブルクリック)。
  • 以下のコードを入力してください。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        // データベース接続情報
        string connectionString = "your_connection_string"; // 自分の接続文字列を入力
        string query = "SELECT EmployeeID AS 社員ID, Name AS 氏名, Department AS 部署名 FROM Employees";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // DataSetとSqlDataAdapterを使ってデータを取得
            SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
            DataSet dataSet = new DataSet();

            // DataSetにデータを格納
            adapter.Fill(dataSet, "Employees");

            // DataGridViewにデータを表示
            DataGridView dataGridView = new DataGridView
            {
                Dock = DockStyle.Fill, // 画面全体に表示
                DataSource = dataSet.Tables["Employees"], // データをバインド
                AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill // 列の幅を自動調整
            };

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

AS句を使用して、列名を日本語に変更しています。データベースのテーブル名や列名が英語でも、日本語で表示できるように工夫しています。

string query = "SELECT EmployeeID AS 社員ID, Name AS 氏名, Department AS 部署名 FROM Employees";

手順 4: 実行してみよう!

  1. Ctrl + F5を押してプログラムを実行します。
  2. 画面に従業員リストが表形式で表示されるはずです。
  3. データが表示されない場合は以下を確認しましょう:
    • データベースに接続できているか。
    • クエリ(SQL文)が正しいか。

以下のような画面が表示されます:

+--------+--------+--------+
| 社員ID | 氏名   | 部署名 |
+--------+--------+--------+
| 1      | 山田 太郎 | 総務部 |
| 2      | 佐藤 花子 | 営業部 |
| 3      | 鈴木 一郎 | IT部   |
| 4      | 高橋 和子 | 人事部 |
| 5      | 田中 次郎 | 経理部 |
+--------+--------+--------+

4. このプログラムのポイント DataSetの仕組み

DataSetの仕組み

  • DataSetはメモ帳のように、複数のデータテーブルを保存できます。
  • 今回は1つのテーブル(Employees)を扱いましたが、複数のテーブルを保存してリレーションを設定することも可能です。

DataAdapterの役割

  • DataAdapterは、データベースとDataSetをつなぐ「配達員」のようなものです。
  • SQLクエリを使って必要なデータをDataSetに入れてくれます。

5. 実践に向けたアイデア

  1. フィルタリングを追加:
    • 「IT部門だけを表示する」など、SQL文にWHERE句を追加して条件付きでデータを取得してみましょう。
  2. データの編集:
    • DataGridView上でデータを編集し、変更をデータベースに保存する機能を追加してみましょう。
  3. 複数テーブルの操作:
    • DataSetに複数のテーブルを追加し、それらの関連性(リレーション)を作ってみましょう。

6. 学んだことを振り返り

  • DataSetを使ってデータベースからデータを取得する方法。
  • DataGridViewでデータを画面に表示する方法。
  • SqlDataAdapterの役割と使い方。

7. 次に進むために

  • この基礎を応用して、より高度なデータ操作(フィルタリング、編集、リレーション)を学んでみましょう。
  • Entity Framework Coreを使った最新のデータ操作方法も試してみると、より便利な方法が学べます!

C#,データベース

Posted by hidepon