本記事では、データベースに保存されているデータを検索・登録・更新・削除を行うデータベース操作アプリケーションの作成方法を解説します。
DataSetやTableAdapterを用いたデータ連携の仕組みを理解しながら、実際に動作するアプリを作る手順をステップごとに学べます。
完成イメージ
今回はデータを検索・登録・更新・削除を行うデータベース操作アプリケーションを作成します。
主な機能は以下の通りです。
・検索:入力された商品IDに一致する「商品名」と「単価」を表示します。
・登録:入力された「商品ID」「商品名」「単価」をデータベースに登録します。
・更新:入力された商品IDに一致する「商品名」と「単価」を更新します。
・削除:入力された商品IDのデータをデータベースから削除します。
「作成するアプリケーション」
データベースの作成
以下のデータベースを作成してください。
・データベース名:商品管理
・テーブル名:商品マスタ
| 列名 | データ型 | 主キー | NULL許容 |
| 商品ID | varchar(4) | 〇 | ✕ |
| 商品名 | varchar(10) | ✕ | |
| 単価 | int | ✕ |
アプリケーションの作成
プロジェクト
・テンプレート:Windowsフォームアプリケーション(.NET Framework)
・言語:C#
・フレームワーク:.NET Framework 4.8
DataSet
商品マスタ

| 商品マスタTableAdapter | SQL |
| DeleteQuery | DELETE FROM [dbo].[商品マスタ] WHERE [商品ID] = @商品ID |
| FillBy商品ID, GetDataBy商品ID | SELECT 商品ID, 商品名, 単価 FROM dbo.商品マスタ WHERE 商品ID = @商品ID |
| UpdateQuery | UPDATE [dbo].[商品マスタ] SET [商品名] = @商品名, [単価] = @単価 WHERE [商品ID] = @商品ID |
メイン画面

コントロール
| 名称 | コントロールの種類 | 備考 |
| 固定文字 | Label | |
| 商品ID入力 | TextBox | ・ImeMode:Disable ・MaxLength:4 |
| 商品名表示 | Label | |
| 商品名入力 | TextBox | ・MaxLength:10 |
| 単価表示 | Label | |
| 単価入力 | TextBox | ・Maximum:9999999 ・Minimum:0 |
| 操作ボタン | Button |
コード
using System;
using System.Windows.Forms;
namespace ArtApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_検索_Click(object sender, EventArgs e)
{
try
{
DataSet.商品マスタDataTable dt_商品マスタ = this.tad_商品マスタ.GetDataBy商品ID(this.txb_商品ID_検索.Text);
if(dt_商品マスタ.Rows.Count < 1)
{
this.lbl_商品名_検索.Text = string.Empty;
this.lbl_単価_検索.Text = string.Empty;
return;
}
this.lbl_商品名_検索.Text = dt_商品マスタ[0].商品名;
this.lbl_単価_検索.Text = dt_商品マスタ[0].単価.ToString("N0");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "検索エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_登録_Click(object sender, EventArgs e)
{
try
{
this.tad_商品マスタ.Insert(
this.txb_商品ID_登録.Text,
this.txb_商品名_登録.Text,
(int)this.nud_単価_登録.Value
);
this.txb_商品ID_登録.Text = string.Empty;
this.txb_商品名_登録.Text = string.Empty;
this.nud_単価_登録.Value = 0;
MessageBox.Show("登録が完了しました。", "登録完了", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "登録エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_更新_Click(object sender, EventArgs e)
{
try
{
this.tad_商品マスタ.UpdateQuery(
this.txb_商品名_更新.Text,
(int)this.nud_単価_更新.Value,
this.txb_商品ID_更新.Text
);
this.txb_商品ID_更新.Text = string.Empty;
this.txb_商品名_更新.Text = string.Empty;
this.nud_単価_更新.Value = 0;
MessageBox.Show("更新が完了しました。", "更新完了", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_削除_Click(object sender, EventArgs e)
{
try
{
this.tad_商品マスタ.DeleteQuery(this.txb_商品ID_削除.Text);
this.txb_商品ID_削除.Text = String.Empty;
MessageBox.Show("削除が完了しました。", "削除完了", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "削除エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
実行・動作確認
作成したアプリケーションを実行し、想定通りに動作するか確認してみましょう。
検索機能
1. 商品IDを入力し、検索ボタンをクリックします。
2. 商品IDに一致する「商品名」と「単価」を表示します。
登録機能
1. 「商品ID」「商品名」「単価」を入力し、登録ボタンをクリックします。
2. 入力された内容をデータベースに登録します。
更新機能
1. 「商品ID」「商品名」「単価」を入力し、更新ボタンをクリックします。
2. 入力された商品IDに一致する「商品名」と「単価」を更新します。
削除機能
1. 「商品ID」を入力し、削除ボタンをクリックします。
2. 入力された商品IDに一致するデータをデータベースから削除します。
完成イメージ通りに動作すれば、ソケット通信アプリケーションの作成は完了です。
あなたをプロにすることを約束します。

アルチテックのインターンシップはハイレベル。
現役のシステムエンジニアがマンツーマン指導
市場価値が高い産業系システムエンジニアを目指そう!

