Ado.Net la gestione dell'aggiornamento dei dati dell'evento RowUpdating della classe SqlDataAdapter (VB.Net e C#)
La classe SqlDataAdapter, tramite il metodo update, permette l'aggiornamento dei dati, quando si esegue tale metodo si scatenano vari eventi, tra cui RowUpdating, il quale รจ il momento in cui si sta facendo l'aggiornamento dei dati.
L'esempio di codice, qui di seguito, illustra come tramite il linguaggio VB.Net e C#, possiamo gestire tale evento.
VB.Net
Dim con As String = "Data Source=(local);Integrated Security=SSPI; Initial Catalog=test"
Dim Sql As String = "Select * from Dati where id = 1 "
Try'
Dim DtaDati As New SqlDataAdapter(Sql, con)
Dim cmbDati As New SqlCommandBuilder(DtaDati)Dim DttDati As New DataTable("Dati")
'gestore dell'evento RowUpdatingAddHandler DtaDati.RowUpdating, AddressOf DtaDati_RowUpdating
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 RowUpdating, si scatena, quando l'aggiornamento si sta verificandoPrivate Sub DtaDati_RowUpdating(ByVal sender As Object, ByVal e As SqlRowUpdatingEventArgs)
If e.Status = UpdateStatus.ErrorsOccurred ThenMessageBox.Show("Errore")
ElseMessageBox.Show("Evento: " & e.StatementType.ToString())
MessageBox.Show(
"Valore da - a " & e.Row("nome", DataRowVersion.Original) + " - " + e.Row("nome"))
End IfEnd 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 RowUpdatingDtaDati.RowUpdating += new SqlRowUpdatingEventHandler(DtaDati_RowUpdating);DataTable DttDati = new DataTable("Dati");
DtaDati.Fill(DttDati);
//aggiorno il datoDttDati.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 RowUpdating, si scatena, quando l'aggiornamento si sta verificandovoid DtaDati_RowUpdating(object sender, SqlRowUpdatingEventArgs e)
{
if (e.Status == UpdateStatus.ErrorsOccurred)
{
MessageBox.Show("Errore");
}
else
{
MessageBox.Show("Event: " + e.StatementType);MessageBox.Show("Valore da - a " + e.Row["nome", DataRowVersion.Original] + " - " + e.Row["nome"]);
}
}