domenica 25 gennaio 2009

Ado.Net Gestione degli errori del metodo Fill della classe SqlDataAdapter tramite VB.Net e C#

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 error

AddHandler DtaDati.FillError, AddressOf DtaDati_FillError

DtaDati.Fill(DttDati)




Catch ex As ExceptionMessageBox.Show("Errore:" & ex.Message)


End Try

Public Sub DtaDati_FillError(ByVal sender As Object, ByVal e As FillErrorEventArgs)

MessageBox.Show(e.Errors.Message)


e.Continue = True


End Sub


C#



//Esempio dell'evento FillError, si verifica nel caso ci sono errori durante l'utilizzo del metodo fill

string 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 error

DtaDati.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: