Il blog di Emanuele Mattei in ambito Database

Programmazione database, ado.net e database mobile

Blog

Siti

Siti Sql Server

Siti vari

Tools

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

}

}

Posted: dic 28 2008, 06.47 by EmanueleM | with no comments
Filed under: