SqlRowUpdatingEventArgs 类

定义

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

public ref class SqlRowUpdatingEventArgs sealed : System::Data::Common::RowUpdatingEventArgs
public sealed class SqlRowUpdatingEventArgs : System.Data.Common.RowUpdatingEventArgs
type SqlRowUpdatingEventArgs = class
    inherit RowUpdatingEventArgs
Public NotInheritable Class SqlRowUpdatingEventArgs
Inherits RowUpdatingEventArgs
继承
SqlRowUpdatingEventArgs

示例

下面的示例演示如何同时RowUpdating使用和RowUpdated事件。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 args: (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 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 CONNECTION_STRING = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer";
       const string SELECT_ALL = "select * from Products";

       //Create DataAdapter.
       SqlDataAdapter rAdapter    = new SqlDataAdapter(SELECT_ALL, CONNECTION_STRING);

       //Create and fill DataSet (Select only first 5 rows.).
       DataSet rDataSet = new DataSet();
       rAdapter.Fill(rDataSet, 0, 5, "Table");

       //Modify DataSet.
       DataTable rTable = rDataSet.Tables["Table"];
       rTable.Rows[0][1] = "new product";

       //Add handlers.
       rAdapter.RowUpdating += new SqlRowUpdatingEventHandler( OnRowUpdating );
       rAdapter.RowUpdated += new SqlRowUpdatedEventHandler( OnRowUpdated );

       //Update--this operation fires two events (RowUpdating and RowUpdated) for each changed row. 
       rAdapter.Update(rDataSet, "Table");

       //Remove handlers.
       rAdapter.RowUpdating -= new SqlRowUpdatingEventHandler( OnRowUpdating );
       rAdapter.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 CONNECTION_STRING As String = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer"
    Const SELECT_ALL As String = "select * from Products"
    
    'Create DataAdapter.
    Dim rAdapter As New SqlDataAdapter(SELECT_ALL, CONNECTION_STRING)
    
    'Create and fill DataSet (Select only first 5 rows.).
    Dim rDataSet As New DataSet()
    rAdapter.Fill(rDataSet, 0, 5, "Table")
    
    'Modify DataSet.
    Dim rTable As DataTable = rDataSet.Tables("Table")
    rTable.Rows(0)(1) = "new product"
    
    'Add handlers.
    AddHandler rAdapter.RowUpdating, AddressOf OnRowUpdating
    AddHandler rAdapter.RowUpdated, AddressOf OnRowUpdated
    
    'Update--this operation fires two events (RowUpdating and RowUpdated) for each changed row. 
    rAdapter.Update(rDataSet, "Table")
    
    'Remove handlers.
    RemoveHandler rAdapter.RowUpdating, AddressOf OnRowUpdating
    RemoveHandler rAdapter.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 

注解

事件在Update到行之前引发。 RowUpdatingThe RowUpdating event is raised before an Update to a row.

使用Update时, 每个更新的数据行都发生两个事件。When you are 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. 如果有输出参数, 则将它们放在中DataRowIf there are output parameters, they are placed in the DataRow.

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

  7. 调用 AcceptChangesAcceptChanges is called.

构造函数

SqlRowUpdatingEventArgs(DataRow, IDbCommand, StatementType, DataTableMapping)

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

属性

BaseCommand

获取或设置此类的实例的 IDbCommand 对象。Gets or sets the IDbCommand object for an instance of this class.

(继承自 RowUpdatingEventArgs)
Command

获取或设置进行 SqlCommand 时执行的 Update(DataSet)Gets or sets the SqlCommand to execute when performing the Update(DataSet).

Errors

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

(继承自 RowUpdatingEventArgs)
Row

获取要作为插入、更新或删除操作的一部分发送到服务器的 DataRowGets the DataRow that will be sent to the server as part of an insert, update, or delete operation.

(继承自 RowUpdatingEventArgs)
StatementType

获取要执行的 SQL 语句的类型。Gets the type of SQL statement to execute.

(继承自 RowUpdatingEventArgs)
Status

获取或设置 UpdateStatus 属性的 CommandGets or sets the UpdateStatus of the Command property.

(继承自 RowUpdatingEventArgs)
TableMapping

获取要通过 DataTableMapping 发送的 Update(DataSet)Gets the DataTableMapping to send through the Update(DataSet).

(继承自 RowUpdatingEventArgs)

方法

Equals(Object)

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

(继承自 Object)
GetHashCode()

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

(继承自 Object)
GetType()

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

(继承自 Object)
MemberwiseClone()

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

(继承自 Object)
ToString()

返回一个表示当前对象的 string。Returns a string that represents the current object.

(继承自 Object)

适用于

另请参阅