データバインドしたウィンドウコントロールにデータベースの値を反映させるコードを紹介します。
また、データのカーソルを前後に移動するコードも合わせて紹介します。
Windows Formアプリケーションを作成し、データセットを作成しフォームのコントロールにバインドしただけではデータベースのデータは表示できません。
この記事では、フォームのコントロールにデータベースのデータを反映させ、カーソルを前後に移動できるプログラムコードを紹介します。
フォームのコントロールにデータベースのデータを反映させるには、データセットのTableAdapter作成時に生成される[TableAdapterにデータを格納する]メソッド名を呼び出します。
デフォルトでは、メソッド名はFill()
になります。
また、カーソルを前後に移動させるのはTableAdapterのMoveNext()
MovePrevious()
メソッドを呼び出します。
Windows Formのアプリケーションプロジェクトを作成します。
作成したWindows Formアプリケーションにデータセットを作成します。データセットの作成手順はこちらの記事を参照してください。
フォームにデータセット、テーブルアダプタのコントロールを配置します。
コントロールの配置手順はこちらの記事を参照してください。
下図のフォームを作成します。テキストボックスとボタンを配置します。
フォーム作成後、テキストボックスに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プロパティを設定したコントロールにデータベースの値を反映することができました。