SqlRowUpdatingEventArgs クラス
RowUpdating イベントのデータを提供します。このクラスは継承できません。
この型のすべてのメンバの一覧については、SqlRowUpdatingEventArgs メンバ を参照してください。
System.Object
System.EventArgs
System.Data.Common.RowUpdatingEventArgs
System.Data.SqlClient.SqlRowUpdatingEventArgs
NotInheritable Public Class SqlRowUpdatingEventArgs
Inherits RowUpdatingEventArgs
[C#]
public sealed class SqlRowUpdatingEventArgs : RowUpdatingEventArgs
[C++]
public __gc __sealed class SqlRowUpdatingEventArgs : public
RowUpdatingEventArgs
[JScript]
public class SqlRowUpdatingEventArgs extends RowUpdatingEventArgs
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
RowUpdating イベントは、行に対して Update が実行される前に発生します。
Update を使用すると、データ行が更新されるたびに 2 つのイベントが発生します。次の順序で処理が実行されます。
- DataRow 内の値が、パラメータ値に移動されます。
- OnRowUpdating イベントが発生します。
- コマンドが実行されます。
- コマンドが FirstReturnedRecord に設定されている場合は、最初に返された結果が DataRow に格納されます。
- 出力パラメータがある場合は、それが DataRow に格納されます。
- OnRowUpdated イベントが発生します。
- AcceptChanges が呼び出されます。
使用例
[Visual Basic, C#, C++] RowUpdating イベントと RowUpdated イベントを使用する方法を次の例に示します。
[Visual Basic, C#, C++] RowUpdating イベントは、次の出力を返します。
[Visual Basic, C#, C++] イベント引数: (command=System.Data.SqlClient.SQLCommand commandType=2 status=0)
[Visual Basic, C#, C++] RowUpdated イベントは、次の出力を返します。
[Visual Basic, C#, C++] イベント引数: (command=System.Data.SqlClient.SQLCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] status=0)
'Handler for RowUpdating event.
Protected Shared Sub OnRowUpdating(sender As Object, e As SqlRowUpdatingEventArgs)
PrintEventArgs(e)
End Sub 'OnRowUpdating
'Handler for RowUpdated event.
Protected Shared Sub OnRowUpdated(sender As Object, e As SqlRowUpdatedEventArgs)
PrintEventArgs(e)
End Sub 'OnRowUpdated
'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 'Main
Overloads Protected 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 'PrintEventArgs
Overloads Protected 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 'PrintEventArgs
[C#]
// handler for RowUpdating event
protected static void OnRowUpdating(object sender, SqlRowUpdatingEventArgs e) {
PrintEventArgs(e);
}
//Handler for RowUpdated event.
protected static void OnRowUpdated(object sender, SqlRowUpdatedEventArgs e) {
PrintEventArgs(e);
}
public static int Main(String[] args) {
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;
}
protected static void PrintEventArgs(SqlRowUpdatingEventArgs args) {
Console.WriteLine("OnRowUpdating");
Console.WriteLine(" event args: ("+
" command=" + args.Command +
" commandType=" + args.StatementType +
" status=" + args.Status + ")");
}
protected static void PrintEventArgs(SqlRowUpdatedEventArgs args) {
Console.WriteLine("OnRowUpdated");
Console.WriteLine(" event args: ("+
" command=" + args.Command +
" commandType=" + args.StatementType +
" recordsAffected=" + args.RecordsAffected +
" status=" + args.Status + ")");
}
[C++]
// handler for RowUpdating event
protected:
static void OnRowUpdating(Object* sender, SqlRowUpdatingEventArgs* e) {
PrintEventArgs(e);
}
//Handler for RowUpdated event.
protected:
static void OnRowUpdated(Object* sender, SqlRowUpdatedEventArgs* e) {
PrintEventArgs(e);
}
public:
static int main() {
String* CONNECTION_STRING = S"Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer";
String* SELECT_ALL = S"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, S"Table");
//Modify DataSet.
DataTable* rTable = rDataSet->Tables->Item[S"Table"];
rTable->Rows->Item[0]->Item[1] = S"new product";
//Add handlers.
rAdapter->RowUpdating += new SqlRowUpdatingEventHandler(0, OnRowUpdating );
rAdapter->RowUpdated += new SqlRowUpdatedEventHandler(0, OnRowUpdated );
//Update--this operation fires two events (RowUpdating and RowUpdated) for each changed row.
rAdapter->Update(rDataSet, S"Table");
//Remove handlers.
rAdapter->RowUpdating -= new SqlRowUpdatingEventHandler(0, OnRowUpdating );
rAdapter->RowUpdated -= new SqlRowUpdatedEventHandler(0, OnRowUpdated );
return 0;
}
protected:
static void PrintEventArgs(SqlRowUpdatingEventArgs* args) {
Console::WriteLine(S"OnRowUpdating");
Console::WriteLine(String::Format( S" event args: ( command={0} commandType={1} status={2})",
args->Command, __box(args->StatementType), __box(args->Status)));
}
static void PrintEventArgs(SqlRowUpdatedEventArgs* args) {
Console::WriteLine(S"OnRowUpdated");
Console::WriteLine(String::Concat(
String::Format( S" event args: ( command={0} commandType={1}", args->Command, __box(args->StatementType)),
String::Format( S" recordsAffected={2} status={3})", __box(args->RecordsAffected), __box(args->Status))));
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Data.SqlClient
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Data (System.Data.dll 内)