カード形式のシンプルなデータベースレコード表示アプリケーションの作成 - C#

シンプルなカード形式のデータベース参照アプリケーションを作成します。

UIとデータセットの作成

Windowsフォームアプリケーションを新規作成し、フォームにテキストボックスを配置します。


プロパティウィンドウを表示し"(DataBindings)"プロパティを開き"(詳細)"の[...]ボタンを押します。


[フォーマットと詳細バインド]ダイアログボックスが表示されます。


[バインド]コンボボックスを開きます。ドロップダウンリスト内の[プロジェクトデータソースの追加]リンクをクリックします。


[データソース構成ウィザード]ダイアログが表示されます。[アプリケーションデータの取得元]の欄から"データベース"を選択します。選択後[次へ]ボタンを押します。


使用するデータベースのモデルを選択します。今回は"データセット"を選択します。選択後[次へ]ボタンを押します。


データ接続の選択をします。接続を選択します。接続が一つもない場合はコンボボックスの右側の[新しい接続]ボタンを押します。[新しい接続]ボタンを押した場合の接続の作成手順についてはこちらの記事の"データ接続の新規作成"の項目を参照してください。


データベースへの接続情報のパスワードなどを接続文字列内に含めるかを選択します。選択後[次へ]ボタンを押します。


アプリケーションで保存する接続文字列名を設定します。今回はデフォルトのままとしました。[次へ]ボタンを押します。


[データベース オブジェクトの選択]画面が表示されます。


[テーブル]ノードを開きます。データベースに格納されているテーブルが表示されます。


アプリケーションから参照するテーブルにチェックを入れます。チェックができたら[完了]ボタンを押します。


[データソース構成ウィザード]ダイアログが閉じられ[フォーマットと詳細バインド]ダイアログに戻ります。[バインド]コンボボックスを開き、ドロップダウンリストの[他のデータソース]ノードの[プロジェクトデータソース]ノードの[(データセット名)]ノード内の[(テーブル名)]ノードを開きます。ノード内にフィールドの要素が表示されますので、配置したテキストボックスにバインドしたいフィールドを選択します。今回は"id"列を指定しました。


同様の手順で2つ目のテキストボックスをフォームに配置し、プロパティウィンドウを表示し"(DataBindings)"プロパティを開き"(詳細)"の[...]ボタンを押し、[フォーマットと詳細バインド]ダイアログを表示します。[バインド]コンボボックスを開きます。最初のフィールドをバインドした際にBindingDataSourceコンポーネントが作成されるため、BindingDataSourceノード内のフィールドを選択します。(下図参照)


同様の手順で3つ目のテキストボックスにもバインドします。


下図のUIが作成できます。

プロジェクトの実行

プロジェクトを実行します。テキストボックスにデータのバインドができているため、データベースのテーブルの最初のレコードの内容がテキストボックスに表示されます。

前後のレコード表示機能の追加

続いて前後のレコードを表示切替する機能を追加します。先のUIにボタンを2つ追加します。

コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SimpleCardApp
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      // TODO: このコード行はデータを 'iPentecSandBoxDataSet.SimpleProduct' テーブルに読み込みます。
      //必要に応じて移動、または削除をしてください。
      this.simpleProductTableAdapter.Fill(this.iPentecSandBoxDataSet.SimpleProduct);

    }

    private void button1_Click(object sender, EventArgs e)
    {
      simpleProductBindingSource.MovePrevious();
    }

    private void button2_Click(object sender, EventArgs e)
    {
      simpleProductBindingSource.MoveNext();
    }
  }
}

解説

button1がクリックされた場合はBindingSourceコンポーネントのMovePrevious()メソッドを呼び出しひとつ前のレコードをカレントレコードに設定します。button2がクリックされた場合はMoveNext()メソッドを呼び出し次のレコードをカレントレコードに設定します。

実行結果

プロジェクトを実行します。アプリケーションが起動し下図のウィンドウが表示されます。


button2を押すとテキストボックスの内容が次のレコードの値に変わります。



button1をクリックするとテキストボックスの内容が前のレコードの値に代わります。

シンプルなカード形式のデータベース参照アプリケーションが出来上がりました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-07
作成日: 2012-10-24
iPentec all rights reserverd.