SqlDataAdapter.RowUpdating 이벤트
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
데이터 소스에 대해 명령이 실행되기 전에 Update(DataSet)를 수행하는 동안 발생합니다. 업데이트를 시도했으므로 이벤트가 발생합니다.
public:
event System::Data::SqlClient::SqlRowUpdatingEventHandler ^ RowUpdating;
[System.Data.DataSysDescription("DbDataAdapter_RowUpdating")]
public event System.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating;
public event System.Data.SqlClient.SqlRowUpdatingEventHandler RowUpdating;
[<System.Data.DataSysDescription("DbDataAdapter_RowUpdating")>]
member this.RowUpdating : System.Data.SqlClient.SqlRowUpdatingEventHandler
member this.RowUpdating : System.Data.SqlClient.SqlRowUpdatingEventHandler
Public Custom Event RowUpdating As SqlRowUpdatingEventHandler
이벤트 유형
- 특성
예제
다음 예제에서는 둘 다 사용 하는 RowUpdating 및 RowUpdated 이벤트입니다.
RowUpdating 이벤트가이 출력을 반환 합니다.
이벤트 인수: (command=System.Data.SqlClient.SqlCommand commandType=2 상태=0)
RowUpdated 이벤트가이 출력을 반환 합니다.
이벤트 인수: (command=System.Data.SqlClient.SqlCommand commandType=2 recordsAffected=1 row=System.Data.DataRow[37] 상태=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
설명
를 사용하는 Update경우 업데이트된 데이터 행당 두 개의 이벤트가 발생합니다. 실행 순서는 다음과 같습니다.
값을 DataRow 매개 변수 값으로 이동 됩니다.
OnRowUpdating 이벤트가 발생합니다.
명령을 실행합니다.
명령으로 설정 되어 있으면
FirstReturnedRecord
, 첫 번째 반환 결과에 위치한는 DataRow합니다.에 배치 됩니다 출력 매개 변수가 있는 경우는 DataRow합니다.
OnRowUpdated 이벤트가 발생합니다.
AcceptChanges을 호출합니다.
적용 대상
추가 정보
.NET