SqlRowUpdatedEventArgs Class

Definition

RowUpdated 事件提供数据。Provides data for the RowUpdated event.

public ref class SqlRowUpdatedEventArgs sealed : System::Data::Common::RowUpdatedEventArgs
public sealed class SqlRowUpdatedEventArgs : System.Data.Common.RowUpdatedEventArgs
type SqlRowUpdatedEventArgs = class
    inherit RowUpdatedEventArgs
Public NotInheritable Class SqlRowUpdatedEventArgs
Inherits RowUpdatedEventArgs
Inheritance
SqlRowUpdatedEventArgs

Examples

下面的示例演示如何同时使用 RowUpdatingRowUpdated 事件。The following example shows how to use both the RowUpdating and RowUpdated events.

RowUpdating 事件返回以下输出:The RowUpdating event returns this output:

事件参数:(command = SqlClient commandType = 2 status = 0)Event Arguments: (command=System.Data.SqlClient.SqlCommand commandType=2 status=0)

RowUpdated 事件返回以下输出:The RowUpdated event returns this output:

事件参数:(command = SqlClient commandType = 2 recordsAffected = 1 row = System.object [37] status = 0)Event Arguments: (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 =
              "Integrated Security=SSPI;database=Northwind;server=MSSQL1";
    const string queryString = "SELECT * FROM Products";

    // create DataAdapter
    SqlDataAdapter adapter = new SqlDataAdapter(queryString, connectionString);
    SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

    // Create and fill DataSet (select only first 5 rows)
    DataSet dataSet = new DataSet();
    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 
    
    'Entry point which delegates to C-style main Private Function
    Public Overloads Shared Sub Main()
        System.Environment.ExitCode = Main(System.Environment.GetCommandLineArgs())
    End Sub
    
    Overloads Public Shared Function Main(args() As String) As Integer
        Const connectionString As String = _
            "Integrated Security=SSPI;database=Northwind;server=MSSQL1"
        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 
    
    
    Overloads Private 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 
    
    
    Overloads Private 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 

Remarks

行的 Update 完成时,将引发 RowUpdated 事件。The RowUpdated event is raised when an Update to a row is completed.

使用 Update时,会为每个更新的数据行发生两个事件。When using Update, there are two events that occur for each data row updated. 执行顺序如下所示:The order of execution is as follows:

  1. DataRow 中的值将移至参数值。The values in the DataRow are moved to the parameter values.

  2. 引发 OnRowUpdating 事件。The OnRowUpdating event is raised.

  3. 命令执行。The command executes.

  4. 如果命令设置为 FirstReturnedRecord,则将第一个返回的结果放置在 DataRow中。If the command is set to FirstReturnedRecord, and the first returned result is placed in the DataRow.

  5. 如果有输出参数,它们会置于 DataRow中。If there are output parameters, they are placed in the DataRow.

  6. 引发 OnRowUpdated 事件。The OnRowUpdated event is raised.

  7. 调用 AcceptChangesAcceptChanges is called.

Constructors

SqlRowUpdatedEventArgs(DataRow, IDbCommand, StatementType, DataTableMapping)

初始化 SqlRowUpdatedEventArgs 类的新实例。Initializes a new instance of the SqlRowUpdatedEventArgs class.

Properties

Command

获取或设置当调用 SqlCommand 时执行的 Update(DataSet)Gets or sets the SqlCommand executed when Update(DataSet) is called.

Errors

获取当 Command 执行时 .NET Framework 数据提供程序生成的任何错误。Gets any errors generated by the .NET Framework data provider when the Command was executed.

(Inherited from RowUpdatedEventArgs)
RecordsAffected

获取由执行 SQL 语句而更改、插入或删除的行数。Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

(Inherited from RowUpdatedEventArgs)
Row

获取通过 Update(DataSet) 发送的 DataRowGets the DataRow sent through an Update(DataSet).

(Inherited from RowUpdatedEventArgs)
RowCount

获取在一批更新记录中处理的行数。Gets the number of rows processed in a batch of updated records.

(Inherited from RowUpdatedEventArgs)
StatementType

获取所执行的 SQL 语句的类型。Gets the type of SQL statement executed.

(Inherited from RowUpdatedEventArgs)
Status

获取 Command 属性的 UpdateStatusGets the UpdateStatus of the Command property.

(Inherited from RowUpdatedEventArgs)
TableMapping

获取通过 Update(DataSet) 发送的 DataTableMappingGets the DataTableMapping sent through an Update(DataSet).

(Inherited from RowUpdatedEventArgs)

Methods

CopyToRows(DataRow[])

将已修改的行的引用复制到提供的数组中。Copies references to the modified rows into the provided array.

(Inherited from RowUpdatedEventArgs)
CopyToRows(DataRow[], Int32)

将已修改的行的引用复制到提供的数组中。Copies references to the modified rows into the provided array.

(Inherited from RowUpdatedEventArgs)
Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode()

作为默认哈希函数。Serves as the default hash function.

(Inherited from Object)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

返回表示当前对象的字符串。Returns a string that represents the current object.

(Inherited from Object)

Applies to

See also