次の方法で共有


方法 : 列の変更時にデータを検証する

更新 : 2007 年 11 月

データの検証は、アプリケーションのデータに入力される値をチェックするプロセスです。基になるデータ ストアに更新を送信する前にこのような値をチェックすると、アプリケーションとデータ ストアの間で生じる可能性のあるラウンド トリップの回数を減らすことができます。

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

データセット デザイナで作成される部分クラスにおいて、データセットに検証ロジックを追加できます。このデザイナで生成されるデータセットによって、部分クラス内のコードが削除または変更されることはありません。詳細については、「方法 : データセットの機能を拡張する」を参照してください。

ColumnChanging イベントに応答することにより、データ列の値の変更時にデータの値を検証できます。このイベントが発生すると、現在の列に対して指定されている値を含むイベント引数 (ProposedValue) が渡されます。e.ProposedValue の内容に基づいて、次の操作が可能です。

  • 何もせずに、指示された値を受け入れます。

  • 列変更イベント ハンドラで列エラー (SetColumnError) を設定して、指定された値を拒否します。

  • オプションで ErrorProvider コントロールを使用して、ユーザーにエラー メッセージを表示します。詳細については、「ErrorProvider コンポーネント (Windows フォーム)」を参照してください。

RowChanging イベントの発生中にも検証を実行できます。詳細については、「方法 : 行の変更時にデータを検証する」を参照してください。

列の値の変更時にデータを検証するには

  1. データセット デザイナでデータセットを開きます。詳細については、「方法 : データセット デザイナでデータセットを開く」を参照してください。

  2. 検証する列をダブルクリックします。この操作によって DataTableColumnChanging イベント ハンドラが作成されます。

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

    データセット デザイナでは、C# イベントのイベント ハンドラは自動作成されません。このイベントの処理に必要なコードは、後述します。

  3. アプリケーションの要件を満たすデータが e.ProposedValue に含まれていることを検証するコードを追加します。指示された値が受け入れられない場合、エラーがあることを表すように該当する列を設定します。

    Quantity 列が 0 以下の場合に列エラーを設定するコード例を次に示します。列変更イベント ハンドラは、次のように記述します。

    'Visual Basic
    Private Sub Order_DetailsDataTable_ColumnChanging(ByVal sender As System.Object, ByVal e As System.Data.DataColumnChangeEventArgs) _
        Handles Me.ColumnChanging
    
        If (e.Column.ColumnName = Me.QuantityColumn.ColumnName) Then
    
            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
        End If
    End Sub
    
    // C#
    // Add this code to the DataTable 
    // partial class.
        public override void EndInit()
        {
            base.EndInit();
            ColumnChanging += SampleColumnChangingEvent;
        }
    
        public void SampleColumnChangingEvent(object sender, System.Data.DataColumnChangeEventArgs e)
        {
            if (e.Column.ColumnName == QuantityColumn.ColumnName)
            {
                if ((short)e.ProposedValue <= 0)
                {
                    e.Row.SetColumnError("Quantity", "Quantity must be greater than 0");
                }
                else
                {
                    e.Row.SetColumnError("Quantity", "");
                }
            }
        }
    

参照

処理手順

チュートリアル : Windows アプリケーションのフォームでのデータの表示

方法 : Windows フォーム DataGridView コントロールのデータを検証する

方法 : Windows フォーム ErrorProvider コンポーネントを使用してフォーム妥当性検査でエラー アイコンを表示する

方法 : データベース内のデータに接続する

概念

TableAdapter の概要

データセット デザイナ

データ ソースの概要

参照

[データ ソース] ウィンドウ

その他の技術情報

データの検証