【Winforms】DataSetを使ったデータ操作を学ぼう!(デザインツールを使う)
以下に、デザインツールを使ったDataGridView
の作成手順と、それに合わせたコードの記述方法を説明します。
目次
1. デザインツールでDataGridViewを作成する手順
手順 1: DataGridViewをフォームに追加
- フォームデザイナーを開く:
- ソリューションエクスプローラーで
Form1.cs
(またはフォーム名)をダブルクリックして開きます。
- ソリューションエクスプローラーで
- ツールボックスからDataGridViewを追加:
- Visual Studioの右側にあるツールボックスからDataGridViewを選択し、フォーム上にドラッグ&ドロップします。
- プロパティを設定:
- DataGridViewを選択してプロパティウィンドウを開きます。
- 以下のプロパティを設定します(必要に応じて):
- Name:
dataGridView1
(デフォルトで設定される名前でもOK)。 - Dock:
Fill
(フォーム全体に表示する場合)。 - AutoSizeColumnsMode:
Fill
(列幅を自動調整)。
- Name:
手順 2: コードでデータをバインド
デザインツールで配置したDataGridViewにデータを表示するには、コードでDataSetを使ってデータを取得し、DataGridViewにバインドします。
以下はそのコード例です:
using System.Data;
using Microsoft.Data.SqlClient;
using System.Windows.Forms;
namespace CodeCreateDataSet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// ※ 開発環境向けの例。運用は適切な証明書を配備し TrustServerCertificate は外す
string connectionString =
"Server=YOUR_SERVER;Database=YOUR_DB;User ID=...;Password=...;Encrypt=True;TrustServerCertificate=True";
string query = "SELECT EmployeeID AS 社員ID, Name AS 氏名, Department AS 部署名 FROM Employees";
using var connection = new SqlConnection(connectionString);
using var adapter = new SqlDataAdapter(query, connection);
var dataSet = new DataSet();
connection.Open(); // OpenAsyncでも可(Fill は同期API)
adapter.Fill(dataSet, "Employees");
dataGridView1.DataSource = dataSet.Tables["Employees"];
}
}
}
SQL接続なしで、ローカルの DataSet / DataTable を作って DataGridView に表示するサンプルに差し替えます(dataGridView1 はデザイナで配置済み想定)。
using System;
using System.Data;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 1) ローカルの DataSet / DataTable を用意
var dataSet = new DataSet();
var table = new DataTable("Employees");
// 2) 列を定義(表示名として日本語の列名を使用)
table.Columns.Add("社員ID", typeof(int));
table.Columns.Add("氏名", typeof(string));
table.Columns.Add("部署名", typeof(string));
// 3) ダミーデータを追加(必要に応じて置き換え/追加してください)
table.Rows.Add(1001, "山田 太郎", "開発");
table.Rows.Add(1002, "佐藤 花子", "総務");
table.Rows.Add(1003, "鈴木 次郎", "営業");
// 4) DataSet に登録
dataSet.Tables.Add(table);
// 5) DataGridView にバインド
dataGridView1.AutoGenerateColumns = true; // 自動生成でOK(必要なら false にして列を手動定義)
dataGridView1.DataSource = dataSet.Tables["Employees"];
}
}
補足:
- フィルタや並び替えを簡単にしたい場合は BindingSource を噛ませると便利です。
var bs = new BindingSource { DataSource = dataSet.Tables["Employees"] };
dataGridView1.DataSource = bs;
// 例: 氏名で昇順
bs.Sort = "氏名 ASC";
- もしフォームに dataGridView1 を置いていない場合は、コードで生成しても構いません。
dataGridView1 = new DataGridView { Dock = DockStyle.Fill };
Controls.Add(dataGridView1);
2. デザインツールを使う利点
- 視覚的に配置できる:
- フォーム上でサイズや位置を調整しやすい。
- プロパティウィンドウを使って簡単に設定変更可能。
- 手動でのコーディングが減る:
DataGridView
の基本設定(列幅やスタイルなど)はデザインツールで完了。- コードでデータ取得とバインドだけに集中できる。
- プロトタイプ作成に最適:
- 初学者や短期間で結果を見せたい場合に便利。
3. 注意点
- DataGridViewの名前を確認:
- デザインツールで配置した際、自動生成された名前(例:
dataGridView1
)がコードと一致していることを確認。
- デザインツールで配置した際、自動生成された名前(例:
- 列の定義が必要な場合:
- 自動生成された列ではなく、特定の列をカスタマイズしたい場合は、以下のように列を手動で追加することも可能です:
dataGridView1.Columns.Add("EmployeeID", "社員ID");
dataGridView1.Columns.Add("Name", "氏名");
dataGridView1.Columns.Add("Department", "部署名");
- デザイン変更の影響に注意:
- デザインツールでDataGridViewの構造を変更した場合、コードの変更が必要になることがあります。
4. 実行した際の画面イメージ
以下のような画面が表示されます:
+--------+--------+--------+
| 社員ID | 氏名 | 部署名 |
+--------+--------+--------+
| 1 | 山田 太郎 | 総務部 |
| 2 | 佐藤 花子 | 営業部 |
| 3 | 鈴木 一郎 | IT部 |
| 4 | 高橋 和子 | 人事部 |
| 5 | 田中 次郎 | 経理部 |
+--------+--------+--------+
5. デザインツールとコードの併用の流れ
- デザインツールでDataGridViewをフォームに配置:
- 見た目を整え、初期設定をプロパティウィンドウで設定します。
- コードでDataGridViewにデータをバインド:
- データベースから取得したデータをバインドして動作確認を行います。
結論
デザインツールでDataGridViewを作成しても問題ありません。
視覚的に配置しやすく、プロジェクトの効率を上げることができます。
その後、コードを補完して動的なデータ操作を追加すれば、学習効果も実践力も高まります。
訪問数 80 回, 今日の訪問数 5回
ディスカッション
コメント一覧
まだ、コメントがありません