Quando si utilizza il metodo fill, della classe SqlDataAdapter, possiamo crearci un gesto di evento, per gestire l'eventualità di un errore.
In questo esempio di codice, (VB.Net e C#) vediamo un esempio pratico. L'errore, voluto, riguarda la mancata creazione di colonne nell'oggetto datatable.
VB.Net
'Esempio dell'evento FillError, si verifica nel caso ci sono errori durante l'utilizzo del metodo fill
Dim con As String = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test"
Dim Sql As String = "Select * from Dati where id = 'a'"
Try'
Dim DtaDati As New SqlDataAdapter(Sql, con)
DtaDati.MissingSchemaAction = MissingSchemaAction.Error
Dim DttDati As New DataTable("Dati")
'gestore dell'evento fill errorAddHandler DtaDati.FillError, AddressOf DtaDati_FillError
DtaDati.Fill(DttDati)
Catch ex As ExceptionMessageBox.Show("Errore:" & ex.Message)
End TryPublic Sub DtaDati_FillError(ByVal sender As Object, ByVal e As FillErrorEventArgs)
MessageBox.Show(e.Errors.Message)
e.Continue =
TrueEnd Sub
C#
//Esempio dell'evento FillError, si verifica nel caso ci sono errori durante l'utilizzo del metodo fillstring con = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test";
String Sql = "Select * from Dati where id = 1";
try
{
SqlDataAdapter DtaDati = new SqlDataAdapter(Sql, con);DtaDati.MissingSchemaAction =
MissingSchemaAction.Error;DataTable DttDati = new DataTable();//gestore dell'evento fill errorDtaDati.FillError += new FillErrorEventHandler(DtaDati_FillError);
//non valorizzando con i nomi delle colonne genero un eccezione.
DtaDati.Fill(DttDati);
}
catch (Exception ex){
MessageBox.Show("Errore: " + ex.Message);}
//gestore di evento
void DtaDati_FillError(object sender, FillErrorEventArgs e){
MessageBox.Show(e.Errors.Message);e.Continue =
true;}
Nessun commento:
Posta un commento