Skip to content

Latest commit

 

History

History
97 lines (63 loc) · 9.23 KB

walkthrough-validating-data-in-the-windows-forms-datagridview-control.md

File metadata and controls

97 lines (63 loc) · 9.23 KB
title description ms.date dev_langs helpviewer_keywords ms.assetid
Walkthrough: Validate data in DataGridView control
Learn about and walk through the process of validating data in DataGridView control before it is committed to the data store.
03/30/2017
csharp
vb
validating data [Windows Forms], Windows Forms
data [Windows Forms], validation
DataGridView control [Windows Forms], data validation
data grids [Windows Forms], validating data
data validation [Windows Forms], Windows Forms
walkthroughs [Windows Forms], DataGridView control
a4f1d015-2969-430c-8ea2-b612d179c290

Walkthrough: Validating Data in the Windows Forms DataGridView Control

When you display data entry functionality to users, you frequently have to validate the data entered into your form. The xref:System.Windows.Forms.DataGridView class provides a convenient way to perform validation before data is committed to the data store. You can validate data by handling the xref:System.Windows.Forms.DataGridView.CellValidating event, which is raised by the xref:System.Windows.Forms.DataGridView when the current cell changes.

In this walkthrough, you will retrieve rows from the Customers table in the Northwind sample database and display them in a xref:System.Windows.Forms.DataGridView control. When a user edits a cell in the CompanyName column and tries to leave the cell, the xref:System.Windows.Forms.DataGridView.CellValidating event handler will examine new company name string to make sure it is not empty; if the new value is an empty string, the xref:System.Windows.Forms.DataGridView will prevent the user's cursor from leaving the cell until a non-empty string is entered.

To copy the code in this topic as a single listing, see How to: Validate Data in the Windows Forms DataGridView Control.

Prerequisites

In order to complete this walkthrough, you will need:

  • Access to a server that has the Northwind SQL Server sample database.

Creating the Form

To validate data entered in a DataGridView

  1. Create a class that derives from xref:System.Windows.Forms.Form and contains a xref:System.Windows.Forms.DataGridView control and a xref:System.Windows.Forms.BindingSource component.

    The following code example provides basic initialization and includes a Main method.

    [!code-csharpSystem.Windows.Forms.DataGridViewDataValidation#01] [!code-vbSystem.Windows.Forms.DataGridViewDataValidation#01] [!code-csharpSystem.Windows.Forms.DataGridViewDataValidation#02] [!code-vbSystem.Windows.Forms.DataGridViewDataValidation#02]

  2. Implement a method in your form's class definition for handling the details of connecting to the database.

    This code example uses a GetData method that returns a populated xref:System.Data.DataTable object. Be sure that you set the connectionString variable to a value that is appropriate for your database.

    [!IMPORTANT] Storing sensitive information, such as a password, within the connection string can affect the security of your application. Using Windows Authentication, also known as integrated security, is a more secure way to control access to a database. For more information, see Protecting Connection Information.

    [!code-csharpSystem.Windows.Forms.DataGridViewDataValidation#30] [!code-vbSystem.Windows.Forms.DataGridViewDataValidation#30]

  3. Implement a handler for your form's xref:System.Windows.Forms.Form.Load event that initializes the xref:System.Windows.Forms.DataGridView and xref:System.Windows.Forms.BindingSource and sets up the data binding.

    [!code-csharpSystem.Windows.Forms.DataGridViewDataValidation#10] [!code-vbSystem.Windows.Forms.DataGridViewDataValidation#10]

  4. Implement handlers for the xref:System.Windows.Forms.DataGridView control's xref:System.Windows.Forms.DataGridView.CellValidating and xref:System.Windows.Forms.DataGridView.CellEndEdit events.

    The xref:System.Windows.Forms.DataGridView.CellValidating event handler is where you determine whether the value of a cell in the CompanyName column is empty. If the cell value fails validation, set the xref:System.ComponentModel.CancelEventArgs.Cancel%2A property of the xref:System.Windows.Forms.DataGridViewCellValidatingEventArgs?displayProperty=nameWithType class to true. This causes the xref:System.Windows.Forms.DataGridView control to prevent the cursor from leaving the cell. Set the xref:System.Windows.Forms.DataGridViewRow.ErrorText%2A property on the row to an explanatory string. This displays an error icon with a ToolTip that contains the error text. In the xref:System.Windows.Forms.DataGridView.CellEndEdit event handler, set the xref:System.Windows.Forms.DataGridViewRow.ErrorText%2A property on the row to the empty string. The xref:System.Windows.Forms.DataGridView.CellEndEdit event occurs only when the cell exits edit mode, which it cannot do if it fails validation.

    [!code-csharpSystem.Windows.Forms.DataGridViewDataValidation#20] [!code-vbSystem.Windows.Forms.DataGridViewDataValidation#20]

Testing the Application

You can now test the form to make sure it behaves as expected.

To test the form

  • Compile and run the application.

    You will see a xref:System.Windows.Forms.DataGridView filled with data from the Customers table. When you double-click a cell in the CompanyName column, you can edit the value. If you delete all the characters and hit the TAB key to exit the cell, the xref:System.Windows.Forms.DataGridView prevents you from exiting. When you type a non-empty string into the cell, the xref:System.Windows.Forms.DataGridView control lets you exit the cell.

Next Steps

This application gives you a basic understanding of the xref:System.Windows.Forms.DataGridView control's capabilities. You can customize the appearance and behavior of the xref:System.Windows.Forms.DataGridView control in several ways:

See also