Procedura dettagliata: aggiunta di convalida a un dataset
Questa procedura dettagliata illustra come convalidare i dati quando vengono apportate modifiche ai dati di un set di dati. Il passaggio durante il quale vengono eseguiti i controlli di convalida sui dati dipende dai requisiti dell'applicazione. Nel caso di questa procedura dettagliata i dati vengono convalidati durante la modifica ai valori delle singole colonne. Questa procedura dettagliata usa l'evento ColumnChanging per verificare che nel record venga immesso un valore accettabile. Se il valore immesso non è valido, verrà visualizzato un controllo ErrorProvider.
L'esempio mostra anche come usare Progettazione DataSet per creare una classe parziale per il set di dati. La classe parziale consente all'utente di aggiungere codice per estendere la funzionalità del set di dati generato da Visual Studio. Non verrà sovrascritta se il set di dati viene rigenerato.
Nota
Nomi o percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni vedere Customizing Development Settings in Visual Studio.
Le attività illustrate nella procedura dettagliata sono le seguenti:
Creazione di un nuovo progetto Applicazione Windows.
Creazione e configurazione di un set di dati con la Configurazione guidata origine dati.
Selezione del controllo da creare nel form durante il trascinamento di elementi dalla finestra Origini dati. Per altre informazioni, vedere Procedura: impostare il controllo da creare per il trascinamento dalla finestra Origini dati.
Creazione di un controllo associato a dati mediante il trascinamento degli elementi dalla Origini dati (finestra) nel form.
Creazione di una classe parziale per estendere la funzionalità del set di dati.
Creazione di un gestore eventi per l'evento ColumnChanging della tabella OrderDetails.
Aggiunta di codice di convalida per confermare che la colonna Quantity contiene valori maggiori di 0.
Visualizzazione di un Componente ErrorProvider (Windows Form) per informare gli utenti che un controllo associato a dati contiene valori non validi.
Prerequisiti
Per completare questa procedura dettagliata, è necessario:
- Accedere al database di esempio Northwind. Per altre informazioni, vedere Procedura: installare database di esempio.
Creazione di una nuova applicazione Windows
Per creare il nuovo progetto Applicazione Windows
Scegliere il comando per la creazione di un nuovo progetto dal menu File.
Assegnare al progetto il nome ValidationWalkthrough.
Selezionare Applicazione Windows e fare clic su OK. Per altre informazioni, vedere Sviluppo di applicazioni client con .NET Framework.
Il progetto ValidationWalkthrough viene creato e aggiunto a Esplora soluzioni.
Creazione di una nuova origine dati dal database
Per creare l'origine dati
Scegliere Mostra origini dati dal menu Dati.
Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.
Selezionare Database nella pagina Scegliere un tipo di origine dati e scegliere Avanti.
Nella pagina Seleziona connessione dati eseguire una delle operazioni seguenti:
Selezionare la connessione dati al database di esempio Northwind nell'elenco a discesa, se presente.
-oppure-
Selezionare Nuova connessione per aprire la finestra di dialogo Aggiungi/Modifica connessione.
Se il database in uso richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.
Nella pagina Salva stringa di connessione nel file di configurazione dell'applicazione fare clic su Avanti.
Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.
Selezionare la tabella Order Details, quindi fare clic su Fine.
L'oggetto NorthwindDataSet viene aggiunto al progetto e la tabella OrderDetails viene visualizzata nella finestra Origini dati.
Creazione di controlli associati a dati
Per creare controlli associati a dati nel form
Nella finestra Origini dati selezionare la tabella Order Details.
Scegliere Dettagli nell'elenco di controlli della tabella.
Trascinare il nodo Order Details dalla finestra Origini dati in Form1.
Il form mostra i controlli associati a dati con etichette descrittive e un controllo Toolstrip (BindingNavigator) per lo spostamento all'interno dei record. Il form mostra i controlli associati a dati con etichette descrittive e un controllo Toolstrip (BindingNavigator) per lo spostamento all'interno dei record. Nella barra dei componenti vengono visualizzati gli oggetti NorthwindDataSet, Order_DetailsTableAdapter, BindingSource e BindingNavigator.
Aggiunta di un controllo ErrorProvider al form
Per configurare un controllo ErrorProvider
Trascinare un controllo ErrorProvider dalla Casella degli strumenti in Form1.
Nella finestra Proprietà impostare la proprietà DataSource del controllo ErrorProvider su Order_DetailsBindingSource.
Nota
Non impostare la proprietà DataMember.
Creazione del gestore eventi ColumnChanging
Per creare i gestori eventi di convalida
Aprire NorthwindDataSet in Progettazione Dataset facendo doppio clic sul file NorthwindDataSet.xsd in Esplora soluzioni.
Fare doppio clic sulla colonna Quantity nella tabella OrderDetails per creare il gestore eventi OrderDetailsDataTable_ColumnChanging. In C# verrà creata solo la classe parziale della tabella dati.
Nota
Se si fa doppio clic sul nome della tabella (Order Details nella barra del titolo), verrà creato un gestore eventi per l'evento RowChanging.
Aggiungere il codice per verificare che e.ProposedValue contenga valori maggiori di 0. Se il valore proposto è 0 o un valore inferiore, impostare la colonna in modo da indicare che contiene un errore.
Incollare il codice seguente nel gestore eventi di modifica colonne sotto al commento Aggiungere qui il codice utente:
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
// C# // Add the following code // to the partial class. 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", ""); } }
Verifica dell'applicazione
Per eseguire il test dell'applicazione
Premere F5 per eseguire l'applicazione.
Modificare in 0 il valore nella casella di testo Quantity.
Premere TAB per spostare lo stato attivo dalla casella di testo.
Verrà visualizzata l'icona del provider errori.
Posizionare il puntatore del mouse sul provider errori per visualizzare il messaggio.
Passaggi successivi
A seconda dei requisiti dell'applicazione, si potranno eseguire diverse operazioni una volta terminata l'aggiunta del codice di convalida. È possibile apportare alcuni miglioramenti a questa procedura dettagliata, tra cui:
Aggiunta di funzionalità di reinvio di aggiornamenti al database. Per altre informazioni, vedere Procedura dettagliata: salvataggio di dati in un database (a tabella singola).
Modifica del set di dati per aggiungere o rimuovere oggetti di database. Per altre informazioni, vedere Procedura: modificare un dataset.
Vedere anche
Concetti
Associazione di controlli Windows Form ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Associazione di controlli ai dati in Visual Studio
Modifica di dati nell'applicazione