Cómo: Validar datos mientras se modifica una columna

Validar los datos es el proceso de comprobar los valores que se escriben en los datos de la aplicación. Comprobar estos valores antes de enviar actualizaciones al almacén de datos subyacente es una buena práctica que reduce la posible cantidad de acciones de ida y vuelta entre una aplicación y el almacén de datos.

Nota

El Diseñador de DataSet crea una clase parcial en la que la lógica de validación se puede agregar a un conjunto de datos. El conjunto de datos generado por el diseñador no eliminará ni cambiará ningún código de la clase parcial. Para obtener más información, vea Cómo: Extender la funcionalidad de un conjunto de datos.

Se pueden validar datos cuando el valor en una columna de datos cambia al responder al evento ColumnChanging. Cuando se produce, este evento pasa un argumento de evento (ProposedValue) que contiene el valor propuesto para la columna actual. En base al contenido de e.ProposedValue, se puede:

La validación también se puede realizar durante el evento RowChanging. Para obtener más información, vea Cómo: Validar datos mientras se modifica la fila.

Para validar datos como cambio de valores de columna

  1. Abra el conjunto de datos en el Diseñador de Dataset. Para obtener más información, vea Cómo: Abrir un objeto Dataset en el Diseñador de Dataset.

  2. Haga doble clic en la columna que desee validar. Esta acción crea el controlador de eventos ColumnChanging de la DataTable.

    Nota

    El Diseñador de DataSet no crea ningún controlador de eventos automáticamente para el evento de C#. El código necesario para controlar el evento se incluye a continuación.

  3. Agregue el código para comprobar que e.ProposedValue contiene datos que son compatibles con los requisitos de la aplicación. Si el valor propuesto no es aceptable, establezca la columna para indicar que contiene un error.

    El ejemplo de código siguiente establece un error de columna cuando la columna Quantity es 0 ó menos. El controlador de eventos de cambio de columna debe lucir similar a lo siguiente:

    '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", "");
                }
            }
        }
    

Vea también

Tareas

Tutorial: Mostrar datos en un formulario Windows Forms

Cómo: Validar datos en el control DataGridView de formularios Windows Forms

Cómo: Mostrar iconos de error para la validación de formularios con el componente ErrorProvider de formularios Windows Forms

Cómo: Conectarse a los datos de una base de datos

Referencia

Orígenes de datos (ventana)

Conceptos

Información general sobre TableAdapter

Diseñador de DataSet

Información general sobre orígenes de datos

Otros recursos

Validar datos