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

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

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

[!メモ]

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

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

必須コンポーネント

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

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

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

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

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

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

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

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

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

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

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

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

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

  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 2012 のデータ アプリケーション開発に関する新機能

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

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

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

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

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

データの検証

データの保存

その他の技術情報

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

Visual Studio でのデータへの接続