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

更新 : 2007 年 11 月

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

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

ms171930.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

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

前提条件

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

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

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

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

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

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

    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. ツールボックスから Form1 に ErrorProvider をドラッグします。

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

    ms171930.alert_note(ja-jp,VS.90).gifメモ :

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

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

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

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

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

    ms171930.alert_note(ja-jp,VS.90).gifメモ :

    テーブル名 (タイトル バーの [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 アプリケーションのフォームでのデータの表示

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

データの検証

データの保存