Språk

SqlDataAdapter.RowUpdated Event

Definition

Inträffar när Update(DataSet) ett kommando körs mot datakällan. Försöket att uppdatera görs, så händelsen utlöses.

Använd Microsoft för ny utveckling. Data.SqlClient. Den här sidan dokumenterar 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 

Händelsetyp

Attribut

Exempel

I följande exempel visas hur du använder både RowUpdating händelserna och RowUpdated .

Händelsen RowUpdating returnerar följande utdata:

event args: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

Händelsen RowUpdated returnerar följande utdata:

event args: (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

Kommentarer

När du använder Update, finns det två händelser som inträffar per datarad uppdaterad. Körningsordningen är följande:

  1. Värdena i DataRow flyttas till parametervärdena.

  2. Händelsen OnRowUpdating aktiveras.

  3. Kommandot körs.

  4. Om kommandot är inställt på FirstReturnedRecordplaceras det första returnerade resultatet i DataRow.

  5. Om det finns utdataparametrar placeras de i DataRow.

  6. Händelsen OnRowUpdated aktiveras.

  7. AcceptChanges kallas.

Gäller för

Se även