lunedì 26 gennaio 2009

Ado.Net Gestione dell'evento rowupdated per l'aggiornamento dei dati (VB.Net e C#)

La classe SqlDataAdapter, tramite il metodo update, aggiorna i dati di una fonte dati sql server tramite il metodo Update. Al termine dell'aggiornamento, si scatena un evento (rowupdated) . L'esempio qui di seguito, illustra come creare un gestore di evento per tale evento.


VB.Net


Dim con As String = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test"


Dim Sql As String = "Select * from Dati "


Try

'

Dim DtaDati As New SqlDataAdapter(Sql, con)

Dim cmbDati As New SqlCommandBuilder(DtaDati)

Dim DttDati As New DataTable("Dati")

'gestore dell'evento rowupdated

AddHandler DtaDati.RowUpdated, AddressOf DtaDati_RowUpdated


DtaDati.Fill(DttDati)


'aggiorno il dato


DttDati.Rows(0)("nome") = DttDati.Rows(0)("nome") & " Nuovo"


'metodo che aggiorna il dato


DtaDati.Update(DttDati)


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


End Try


'Funzione per la gestione dell'evento RowUpdate, si scatena, quando l'aggiornamento Š avvenuto

Private Sub DtaDati_RowUpdated(ByVal sender As Object, ByVal e As SqlRowUpdatedEventArgs)

If e.Status = UpdateStatus.ErrorsOccurred Then

MessageBox.Show("Errore")

Else

MessageBox.Show("Evento: " & e.StatementType.ToString())

MessageBox.Show("Valore modificato " & e.Row("nome").ToString())


End If

End Sub


C#

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);

SqlCommandBuilder cmbDati = new SqlCommandBuilder(DtaDati);


//gestore dell'evento rowupdated

DtaDati.RowUpdated += new SqlRowUpdatedEventHandler(DtaDati_RowUpdated);DataTable DttDati = new DataTable("Dati");

DtaDati.Fill(DttDati);


//aggiorno il dato

DttDati.Rows[0]["nome"] = DttDati.Rows[0]["nome"] + " Nuovo";

//metodo che aggiorna il dato


DtaDati.Update(DttDati);



}

catch (Exception ex)

{

MessageBox.Show("Errore: " + ex.Message);

}



//Funzione per la gestione dell'evento RowUpdate, si scatena, quando l'aggiornamento Š avvenuto

void DtaDati_RowUpdated(object sender, SqlRowUpdatedEventArgs e)

{

if (e.Status == UpdateStatus.ErrorsOccurred)

{

MessageBox.Show("Errore di aggiornamento");

}


else


{

MessageBox.Show("Evento: " + e.StatementType);MessageBox.Show("Valore modificato " + e.Row["nome"].ToString());

}


}

Nessun commento: