Procedura: gestire gli errori di concorrenza
Aggiornamento: novembre 2007
È possibile intercettare l'oggetto DBConcurrencyException che facilita la risoluzione dei problemi determinati dalle violazioni di concorrenza. L'oggetto DBConcurrencyException restituisce la riga di dati che ha causato l'errore. Per ulteriori informazioni, vedere Membri di DBConcurrencyException.
Nell'esempio seguente viene illustrata la procedura per tentare l'aggiornamento di un'origine dati con il contenuto di NorthwindDataSet dall'interno di un blocco try/catch. Se viene generato un errore, verrà visualizzato il relativo messaggio insieme alla prima colonna della riga di dati che ha causato il problema.
Nota: |
---|
Il codice riportato di seguito è un esempio di gestione di un errore di aggiornamento del database. Il codice presuppone diversi elementi: una connessione a un database, un insieme di dati esistente, nonché il presupposto che l'esecuzione del comando di aggiornamento generi una violazione di concorrenza. Per ulteriori informazioni e un esempio esaustivo, vedere Procedura dettagliata: gestione di un'eccezione di concorrenza. |
Per risolvere una violazione di concorrenza
Eseguire il comando per aggiornare il database dall'interno di un blocco try/catch.
Se viene generata un'eccezione, analizzare la proprietà Row dell'istruzione catch per determinare la causa della violazione.
Aggiungere il codice per risolvere l'errore in base alle regole business dell'applicazione.
Nel codice riportato di seguito vengono utilizzati CustomersTableAdapter e NorthwindDataSet come esempi di adattatore e dataset dell'applicazione.
Try CustomersTableAdapter.Update(NorthwindDataSet) Catch ex As DBConcurrencyException Dim customErrorMessage As String customErrorMessage = "Concurrency violation" & vbCrLf customErrorMessage += CType(ex.Row.Item(0), String) MessageBox.Show(customErrorMessage) ' Add business logic code to resolve the concurrency violation... End Try
try { customersTableAdapter.Update(northwindDataSet); } catch (DBConcurrencyException ex) { string customErrorMessage; customErrorMessage = "Concurrency violation\n"; customErrorMessage += ex.Row[0].ToString(); // Add business logic code to resolve the concurrency violation... }
Vedere anche
Concetti
Cenni preliminari sulla visualizzazione dei dati
Altre risorse
Procedure dettagliate relative ai dati
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows