シンプルなカード形式のデータベース参照アプリケーションを作成します。
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を愛用
- Windows Form BindingSource アプリケーション
最終更新日: 2024-01-07
作成日: 2012-10-24