lunedì 2 febbraio 2009

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 RowUpdating

AddHandler 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 verificando

Private Sub DtaDati_RowUpdating(ByVal sender As Object, ByVal e As SqlRowUpdatingEventArgs)

If e.Status = UpdateStatus.ErrorsOccurred Then

MessageBox.Show("Errore")

Else

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

MessageBox.Show("Valore da - a " & e.Row("nome", DataRowVersion.Original) + " - " + e.Row("nome"))


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 RowUpdating

DtaDati.RowUpdating += new SqlRowUpdatingEventHandler(DtaDati_RowUpdating);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 RowUpdating, si scatena, quando l'aggiornamento si sta verificando

void 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"]);

}


}

Nessun commento: