Share via


Procedura: convalidare i dati durante la modifica delle righe

Aggiornamento: novembre 2007

La convalida dei dati è il processo mediante il quale si verifica la validità dei valori immessi come dati dell'applicazione. È opportuno controllare questi valori prima di inviare gli aggiornamenti all'archivio dati sottostante, in quanto consente di ridurre il numero potenziale di round trip tra un'applicazione e l'archivio dati.

Nota:

Nella finestra Progettazione DataSet è possibile creare una classe parziale in cui inserire la logica di convalida per il dataset. Il dataset generato mediante la finestra di progettazione non ha la possibilità di cancellare né di modificare in alcun modo il codice inserito nella classe parziale.

È possibile convalidare i dati quando i valori di una riga di dati vengono modificati mediante la risposta all'evento RowChanging. Una volta generato, tale evento passa un argomento (e.Row) contenente i valori proposti per ciascuna colonna nella riga corrente. In base al contenuto di ogni colonna in e.Row, è possibile:

  • Accettare il valore proposto senza eseguire alcuna operazione.

  • Rifiutare il valore proposto impostando l'errore di colonna (SetColumnError) dal gestore eventi di modifica righe.

  • Utilizzare facoltativamente un controllo ErrorProvider per visualizzare un messaggio di errore all'utente. Per ulteriori informazioni, vedere Componente ErrorProvider (Windows Form).

La convalida può essere eseguita anche durante le modifiche alle singole colonne mediante l'evento ColumnChanging. Per ulteriori informazioni, vedere Procedura: convalidare i dati durante la modifica delle colonne.

Convalida dei dati nell'evento RowChanging

È possibile scrivere del codice per verificare che ogni colonna da convalidare contenga dati che soddisfano i requisiti dell'applicazione. Se il valore proposto non è accettabile, impostare la colonna in modo da indicare che contiene un errore. Negli esempi che seguono viene impostato un errore di colonna quando la colonna Quantity è pari a 0 o a un valore inferiore. I gestori eventi di modifica righe devono risultare simili agli esempi seguenti.

Per convalidare dati quando si modifica una riga (Visual Basic)

  1. Aprire il dataset in Progettazione DataSet. Per ulteriori informazioni, vedere Procedura: aprire un dataset in Progettazione DataSet.

  2. Fare doppio clic sulla barra del titolo della tabella che si desidera convalidare. Attraverso questa azione viene creato automaticamente il gestore eventi RowChanging dell'oggetto DataTable nel file di classe parziale del dataset.

    Suggerimento:

    Fare doppio clic a sinistra del nome della tabella per creare il gestore eventi di modifica righe. Fare doppio clic sul nome della tabella per modificarlo.

    Private Sub Order_DetailsDataTable_Order_DetailsRowChanging(ByVal sender As System.Object, _
        ByVal e As Order_DetailsRowChangeEvent) Handles Me.Order_DetailsRowChanging
    
        If CType(e.Row.Quantity, Short) <= 0 Then
            e.Row.SetColumnError("Quantity", "Quantity must be greater than 0")
        Else
            e.Row.SetColumnError("Quantity", "")
        End If
    End Sub
    

Per convalidare dati quando si modifica una riga (C#)

  1. Aprire il dataset in Progettazione DataSet. Per ulteriori informazioni, vedere Procedura: aprire un dataset in Progettazione DataSet.

  2. Fare doppio clic sulla barra del titolo della tabella che si desidera convalidare. Attraverso questa azione viene creato un file di classe parziale per l'oggetto DataTable.

    Nota:

    Progettazione DataSet non consente di creare automaticamente un gestore eventi per l'evento RowChanging. È necessario creare un metodo per gestire l'evento RowChanging ed eseguire il codice per associare tale evento nel metodo di inizializzazione della tabella.

  3. Copiare il codice riportato di seguito nella classe parziale:

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

Vedere anche

Attività

Procedura: connettersi ai dati di un database

Procedura: convalidare i dati durante la modifica delle colonne

Procedura dettagliata: visualizzazione dei dati su un form in un'applicazione Windows

Concetti

Novità relative ai dati

Cenni preliminari sugli oggetti TableAdapter

Progettazione DataSet

Cenni preliminari sulle origini dati

Riferimenti

Finestra Origini dati

Eventi (Guida per programmatori C#)

Altre risorse

Procedure dettagliate relative ai dati

Convalida dei dati