データバインドしたウィンドウコントロールにデータベースの値を反映させるコードを紹介します。
また、データのカーソルを前後に移動するコードも合わせて紹介します。
概要
Windows Formアプリケーションを作成し、データセットを作成しフォームのコントロールにバインドしただけではデータベースのデータは表示できません。
この記事では、フォームのコントロールにデータベースのデータを反映させ、カーソルを前後に移動できるプログラムコードを紹介します。
実装方法
フォームのコントロールにデータベースのデータを反映させるには、データセットのTableAdapter作成時に生成される[TableAdapterにデータを格納する]メソッド名を呼び出します。
デフォルトでは、メソッド名は
Fill()
になります。
また、カーソルを前後に移動させるのはTableAdapterの
MoveNext()
MovePrevious()
メソッドを呼び出します。
プログラム例
事前準備
Windows Formアプリケーションプロジェクトの作成
Windows Formのアプリケーションプロジェクトを作成します。
データセットの作成
作成したWindows Formアプリケーションにデータセットを作成します。データセットの作成手順は
こちらの記事を参照してください。
データセット、テーブルアダプタ コントロールの配置
フォームにデータセット、テーブルアダプタのコントロールを配置します。
コントロールの配置手順は
こちらの記事を参照してください。
UI
下図のフォームを作成します。テキストボックスとボタンを配置します。
フォーム作成後、テキストボックスにDataBindingsプロパティを設定します。設定手順は
こちらの記事を参照してください。
コード
フォームのコードに下記コードを記述します。
LoadイベントとボタンのClickイベントを実装します。
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 SimpleDataSetDotNet5
{
public partial class FormSimpleShowData : Form
{
public FormSimpleShowData()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
productsABindingSource.MoveNext();
}
private void button2_Click(object sender, EventArgs e)
{
productsABindingSource.MovePrevious();
}
private void FormSimpleShowData_Load(object sender, EventArgs e)
{
productsaTableAdapter1.Fill(dataSet11.ProductsA);
}
}
}
解説
LoadイベントにTableAdapterの
Fill()
メソッドを呼び出します。
Fillメソッドの呼び出しによりDataBindingsを設定したコントロールにデータベースの値が反映されます。
productsaTableAdapter1.Fill(dataSet11.ProductsA);
前後のレコードにカーソルを移動するには BindingSource の
MoveNext()
MovePrevious()
メソッドを呼び出します。
private void button1_Click(object sender, EventArgs e)
{
productsABindingSource.MoveNext();
}
private void button2_Click(object sender, EventArgs e)
{
productsABindingSource.MovePrevious();
}
実行結果
上記のプロジェクトを実行します。アプリケーションが起動しフォームが表示されます。テキストボックスにデータベースのテーブルの値が反映されています。
[button1]をクリックします。テキストボックスの値が、次のレコードの値に変化します。
さらに、[button1]をクリックすると、テキストボックスの値が変化します。
また、[button2]をクリックすると、テキストボックスの値が、一つ手前のレコードの値になります。
DataBindingsプロパティを設定したコントロールにデータベースの値を反映することができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2023-12-04
作成日: 2021-05-18