数据验证示例

更新:2007 年 11 月

本示例演示“数据集设计器”,并使用 PropertyChanged 事件验证用户输入。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  • 按 F5。

要求

此示例需要 Northwind 示例数据库。有关更多信息,请参见如何:安装用于示例的数据库组件并进行疑难解答

演示

该示例演示 Visual Studio 设计器中的数据验证功能。两个任意虚构的规则用于验证数据。使用“数据集设计器”添加代码。双击列名创建列更改事件。双击字段列表创建行更改事件。在那些事件处理程序中,添加了代码以验证建议值:

Private Sub EmployeeDataTable_BirthDateChanging( _
    ByVal sender As EmployeeDataTable, _
    ByVal e As BirthDateChangeEventArg) Handles Me.BirthDateChanging

    Dim minimumAgeDate As New DateTime(DateTime.Now().Year - 18, _
        DateTime.Now().Month, DateTime.Now().Day)
    If e.ProposedValue > minimumAgeDate Then
        e.Row.SetColumnError(e.BirthDateColumn, _
            "Employees must be at least 18 years of age.")
    Else
        e.Row.SetColumnError(e.BirthDateColumn, "")
    End If
End Sub

Private Sub EmployeesDataTable_EmployeesRowChanging( _
    ByVal sender As System.Object, ByVal e As _
    EmployeesRowChangeEvent) Handles Me.EmployeesRowChanging
    If (e.Row.BirthDate = e.Row.HireDate) Then
        e.Row.RowError = e.Row.RowError & _
            "Birth date and hire date are the same."
    Else
        e.Row.ClearErrors()
    End If
End Sub

定义行和列错误时,DataGridView 控件会显示警告图标。对于行错误,图标显示在行的左侧。对于列错误,图标显示在单元格中。

请参见

任务

如何:安装用于示例的数据库组件并进行疑难解答

参考

DataRow

其他资源

验证数据