Condividi tramite


Procedura: convalidare i dati durante la modifica delle righe

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.

    SuggerimentoSuggerimento

    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 di dati in un Windows Form

Riferimenti

Origini dati (finestra)

Eventi (Guida per programmatori C#)

Concetti

Novità relative allo sviluppo di applicazioni dati in Visual Studio 2012

Cenni preliminari sugli oggetti TableAdapter

Creazione e modifica di dataset tipizzati

Cenni preliminari sulle origini dati

Convalida dei dati

Altre risorse

Procedure dettagliate relative ai dati