データバインドしたウィンドウコントロールにデータベースの値を反映 / データのカーソルを前後に移動する (.NET) - C#

データバインドしたウィンドウコントロールにデータベースの値を反映させるコードを紹介します。
また、データのカーソルを前後に移動するコードも合わせて紹介します。

概要

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
iPentec all rights reserverd.