チュートリアル : データセットへの検証の追加

このチュートリアルでは、データセット内のデータに変更が加えられたときにデータを検証する方法を示します。 データの検証をどこで実行するかは、アプリケーションの要件によって異なります。このチュートリアルでは、列内の値が変更される時点でデータを検証します。 ここでは、ColumnChanging イベントを使用して、有効な値がレコードに入力されていることを検証します。 値が無効な場合は、ErrorProvider コントロールが表示されます。

また、この例では、データセット デザイナーを使ってデータセットの部分クラスを作成する方法も示します。 (部分クラスには、ユーザーがコードを追加して Visual Studio 生成データセットの機能を拡張できます。 データセットが再生成されても、追加コードは上書きされません。)

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Customizing Development Settings in Visual Studio」を参照してください。

このチュートリアルでは、以下のタスクを行います。

必須コンポーネント

このチュートリアルを完了するための要件は次のとおりです。

新しい Windows アプリケーションの作成

新しい Windows アプリケーション プロジェクトを作成するには

  1. [ファイル] メニューで新しいプロジェクトを作成します。

  2. プロジェクトに「ValidationWalkthrough」という名前を付けます。

  3. [Windows アプリケーション] をクリックし、[OK] をクリックします。 詳細については、「.NET Framework を使用したクライアント アプリケーションの開発」を参照してください。

    ValidationWalkthrough プロジェクトが作成されてソリューション エクスプローラーに追加されます。

データベースから新規データ ソースを作成する

データ ソースを作成するには

  1. [データ] メニューの [データ ソースの表示] をクリックします。

  2. [データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。

  3. [データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。

  4. [データ接続の選択] ページで、次のいずれかの操作を行います。

    • Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。

      または

    • [新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。

  5. データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。

  6. [アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。

  7. [データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。

  8. [Order Details] テーブルを選択し、[完了] をクリックします。

    プロジェクトに [NorthwindDataSet] が追加され、[データ ソース] ウィンドウに [Order Details] テーブルが表示されます。

データ バインド コントロールの作成

フォームにデータ バインド コントロールを作成するには

  1. [データ ソース] ウィンドウで、[Order Details] テーブルを選択します。

  2. テーブルのコントロール リストの [詳細] をクリックします。

  3. [データ ソース] ウィンドウから Form1[Order Details] ノードをドラッグします。

    説明のラベルが付いたデータ バインド コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。 説明のラベルが付いたデータ バインド コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。 NorthwindDataSetOrder_DetailsTableAdapterBindingSource、および BindingNavigator がコンポーネント トレイに表示されます。

フォームへの ErrorProvider コントロールの追加

ErrorProvider コントロールを構成するには

  1. ツールボックスから Form1ErrorProvider をドラッグします。

  2. [プロパティ] ウィンドウで、ErrorProviderDataSource プロパティを Order_DetailsBindingSource に設定します。

    注意

    DataMember プロパティを設定しないでください。

ColumnChanging イベント ハンドラーの作成

入力規則イベント ハンドラーを作成するには

  1. ソリューション エクスプローラーで NorthwindDataSet.xsd ファイルをダブルクリックし、NorthwindDataSet をデータセット デザイナーで開きます。

  2. OrderDetails テーブルの Quantity 列をダブルクリックして OrderDetailsDataTable_ColumnChanging イベント ハンドラーを作成します (C# では、データ テーブルの部分クラスのみが作成されます)。

    注意

    テーブル名 (タイトル バーの [Order Details]) をダブルクリックして、RowChanging イベントのイベント ハンドラーを作成します。

  3. e.ProposedValue に 0 より大きい値が含まれていることを確認するコードを追加します。 指定された値が 0 以下の場合、エラーがあることを表すように該当する列を設定します。

    次のコードを列変更イベント ハンドラーの "Add user code here" というコメントの下に貼り付けます。

    If CType(e.ProposedValue, Short) <= 0 Then
            e.Row.SetColumnError(e.Column, "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError(e.Column, "")
    End If
    
    // C#
    // Add the following code 
    // to the partial class.
        public override void EndInit()
        {
            base.EndInit();
            Order_DetailsRowChanging += TestRowChangeEvent;
        }
    
        public void TestRowChangeEvent(object sender, Order_DetailsRowChangeEvent e)
        {
            if ((short)e.Row.Quantity <= 0)
            {
                e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
            }
            else
            {
                e.Row.SetColumnError("Quantity", "");
            }
        }
    

アプリケーションのテスト

アプリケーションをテストするには

  1. F5 キーを押してアプリケーションを実行します。

  2. [Quantity] ボックスの値を 0 に変更します。

  3. Tab キーを押して、フォーカスをテキスト ボックスの外に移動します。

    エラー プロバイダーのアイコンが表示されます。

  4. マウス ポインターをエラー プロバイダーの上に置いてメッセージを表示します。

次の手順

アプリケーションの要件によって、入力規則を追加した後で実行する手順がいくつかあります。 このチュートリアルで行うことができる拡張には次のものがあります。

参照

概念

Visual Studio でのデータへの Windows フォーム コントロールのバインド

アプリケーションでデータを受け取る準備

アプリケーションへのデータのフェッチ

Visual Studio でのデータへのコントロールのバインド

アプリケーションでのデータ編集

データの検証

データの保存

その他の技術情報

データに関するチュートリアル

Visual Studio でのデータへの接続