SqlDataAdapter.RowUpdated Event
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica durante Update(DataSet) l'esecuzione di un comando sull'origine dati. Viene eseguito il tentativo di aggiornamento, quindi viene generato l'evento.
Per il nuovo sviluppo, usare Microsoft. Data.SqlClient. Questa pagina documenta System.Data.SqlClient.
public:
event System::Data::SqlClient::SqlRowUpdatedEventHandler ^ RowUpdated;
[System.Data.DataSysDescription("DbDataAdapter_RowUpdated")]
public event System.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated;
public event System.Data.SqlClient.SqlRowUpdatedEventHandler RowUpdated;
[<System.Data.DataSysDescription("DbDataAdapter_RowUpdated")>]
member this.RowUpdated : System.Data.SqlClient.SqlRowUpdatedEventHandler
member this.RowUpdated : System.Data.SqlClient.SqlRowUpdatedEventHandler
Public Custom Event RowUpdated As SqlRowUpdatedEventHandler
Tipo evento
- Attributi
Esempio
Nell'esempio seguente viene illustrato come usare gli RowUpdating eventi e RowUpdated .
L'evento RowUpdating restituisce questo output:
argomenti evento: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)
L'evento RowUpdated restituisce questo output:
argomenti evento: (command=System.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)
// handler for RowUpdating event
private static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs e)
{
PrintEventArgs(e);
}
// handler for RowUpdated event
private static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs e)
{
PrintEventArgs(e);
}
public static int Main()
{
const string connectionString = "...";
const string queryString = "SELECT * FROM Products";
// create DataAdapter
SqlDataAdapter adapter = new(queryString, connectionString);
SqlCommandBuilder builder = new(adapter);
// Create and fill DataSet (select only first 5 rows)
DataSet dataSet = new();
adapter.Fill(dataSet, 0, 5, "Table");
// Modify DataSet
DataTable table = dataSet.Tables["Table"];
table.Rows[0][1] = "new product";
// add handlers
adapter.RowUpdating += new SqlRowUpdatingEventHandler(OnRowUpdating);
adapter.RowUpdated += new SqlRowUpdatedEventHandler(OnRowUpdated);
// update, this operation fires two events
// (RowUpdating/RowUpdated) per changed row
adapter.Update(dataSet, "Table");
// remove handlers
adapter.RowUpdating -= new SqlRowUpdatingEventHandler(OnRowUpdating);
adapter.RowUpdated -= new SqlRowUpdatedEventHandler(OnRowUpdated);
return 0;
}
private static void PrintEventArgs(SqlRowUpdatingEventArgs args)
{
Console.WriteLine("OnRowUpdating");
Console.WriteLine(" event args: (" +
" command=" + args.Command +
" commandType=" + args.StatementType +
" status=" + args.Status + ")");
}
private static void PrintEventArgs(SqlRowUpdatedEventArgs args)
{
Console.WriteLine("OnRowUpdated");
Console.WriteLine(" event args: (" +
" command=" + args.Command +
" commandType=" + args.StatementType +
" recordsAffected=" + args.RecordsAffected +
" status=" + args.Status + ")");
}
' handler for RowUpdating event
Private Shared Sub OnRowUpdating(sender As Object, e As SqlRowUpdatingEventArgs)
PrintEventArgs(e)
End Sub
' handler for RowUpdated event
Private Shared Sub OnRowUpdated(sender As Object, e As SqlRowUpdatedEventArgs)
PrintEventArgs(e)
End Sub
Public Overloads Shared Function Main(args() As String) As Integer
Const connectionString As String = "..."
Const queryString As String = "SELECT * FROM Products"
' create DataAdapter
Dim adapter As New SqlDataAdapter(queryString, connectionString)
Dim builder As New SqlCommandBuilder(adapter)
' Create and fill DataSet (select only first 5 rows)
Dim dataSet As New DataSet()
adapter.Fill(dataSet, 0, 5, "Table")
' Modify DataSet
Dim table As DataTable = dataSet.Tables("Table")
table.Rows(0)(1) = "new product"
' add handlers
AddHandler adapter.RowUpdating, AddressOf OnRowUpdating
AddHandler adapter.RowUpdated, AddressOf OnRowUpdated
' update, this operation fires two events
'(RowUpdating/RowUpdated) per changed row
adapter.Update(dataSet, "Table")
' remove handlers
RemoveHandler adapter.RowUpdating, AddressOf OnRowUpdating
RemoveHandler adapter.RowUpdated, AddressOf OnRowUpdated
Return 0
End Function
Private Overloads Shared Sub PrintEventArgs(args As SqlRowUpdatingEventArgs)
Console.WriteLine("OnRowUpdating")
Console.WriteLine(" event args: (" & " command=" & args.Command.CommandText &
" commandType=" & args.StatementType & " status=" & args.Status & ")")
End Sub
Private Overloads Shared Sub PrintEventArgs(args As SqlRowUpdatedEventArgs)
Console.WriteLine("OnRowUpdated")
Console.WriteLine(" event args: (" & " command=" & args.Command.CommandText &
" commandType=" & args.StatementType & " recordsAffected=" &
args.RecordsAffected & " status=" & args.Status & ")")
End Sub
End Class
Commenti
Quando si usa Update, sono presenti due eventi che si verificano per ogni riga di dati aggiornata. L'ordine di esecuzione è il seguente:
I valori in DataRow vengono spostati nei valori dei parametri.
Viene generato l'evento OnRowUpdating.
Il comando viene eseguito.
Se il comando è impostato su
FirstReturnedRecord, il primo risultato restituito viene inserito in DataRow.Se sono presenti parametri di output, vengono inseriti in DataRow.
Viene generato l'evento OnRowUpdated.
Si chiama AcceptChanges.