536cd135cc
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
150 lines
4.2 KiB
C#
150 lines
4.2 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="RowUpdatedEventArgs.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
// <owner current="true" primary="true">Microsoft</owner>
|
|
// <owner current="true" primary="false">Microsoft</owner>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Data.Common {
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Collections;
|
|
using System.Data;
|
|
|
|
/*
|
|
public delegate void RowUpdatedEventHandler(object sender, RowUpdatedEventArgs e);
|
|
*/
|
|
|
|
public class RowUpdatedEventArgs : System.EventArgs {
|
|
private IDbCommand _command;
|
|
private StatementType _statementType;
|
|
private DataTableMapping _tableMapping;
|
|
private Exception _errors;
|
|
|
|
private DataRow _dataRow;
|
|
private DataRow[] _dataRows;
|
|
|
|
private UpdateStatus _status; // UpdateStatus.Continue; /*0*/
|
|
private int _recordsAffected;
|
|
|
|
public RowUpdatedEventArgs(DataRow dataRow, IDbCommand command, StatementType statementType, DataTableMapping tableMapping) {
|
|
switch(statementType) {
|
|
case StatementType.Select:
|
|
case StatementType.Insert:
|
|
case StatementType.Update:
|
|
case StatementType.Delete:
|
|
case StatementType.Batch:
|
|
break;
|
|
default:
|
|
throw ADP.InvalidStatementType(statementType);
|
|
}
|
|
_dataRow = dataRow;
|
|
_command = command;
|
|
_statementType = statementType;
|
|
_tableMapping = tableMapping;
|
|
}
|
|
|
|
public IDbCommand Command {
|
|
get {
|
|
return _command;
|
|
}
|
|
}
|
|
|
|
public Exception Errors {
|
|
get {
|
|
return _errors;
|
|
}
|
|
set {
|
|
_errors = value;
|
|
}
|
|
}
|
|
|
|
public int RecordsAffected {
|
|
get {
|
|
return _recordsAffected;
|
|
}
|
|
}
|
|
|
|
public DataRow Row {
|
|
get {
|
|
return _dataRow;
|
|
}
|
|
}
|
|
|
|
internal DataRow[] Rows {
|
|
get {
|
|
return _dataRows;
|
|
}
|
|
}
|
|
|
|
public int RowCount {
|
|
get {
|
|
DataRow[] dataRows = _dataRows;
|
|
return ((null != dataRows) ? dataRows.Length : ((null != _dataRow) ? 1 : 0));
|
|
}
|
|
}
|
|
|
|
public StatementType StatementType {
|
|
get {
|
|
return _statementType;
|
|
}
|
|
}
|
|
|
|
public UpdateStatus Status {
|
|
get {
|
|
return _status;
|
|
}
|
|
set {
|
|
switch(value) {
|
|
case UpdateStatus.Continue:
|
|
case UpdateStatus.ErrorsOccurred:
|
|
case UpdateStatus.SkipCurrentRow:
|
|
case UpdateStatus.SkipAllRemainingRows:
|
|
_status = value;
|
|
break;
|
|
default:
|
|
throw ADP.InvalidUpdateStatus(value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public DataTableMapping TableMapping {
|
|
get {
|
|
return _tableMapping;
|
|
}
|
|
}
|
|
|
|
internal void AdapterInit(DataRow[] dataRows) {
|
|
_statementType = StatementType.Batch;
|
|
_dataRows = dataRows;
|
|
|
|
if ((null != dataRows) && (1 == dataRows.Length)) { // WebData 100063
|
|
_dataRow = dataRows[0];
|
|
}
|
|
}
|
|
|
|
internal void AdapterInit(int recordsAffected) {
|
|
_recordsAffected = recordsAffected;
|
|
}
|
|
|
|
public void CopyToRows(DataRow[] array) {
|
|
CopyToRows(array, 0);
|
|
}
|
|
|
|
public void CopyToRows(DataRow[] array, int arrayIndex) {
|
|
DataRow[] dataRows = _dataRows;
|
|
if (null != dataRows) {
|
|
dataRows.CopyTo(array, arrayIndex);
|
|
}
|
|
else {
|
|
if (null == array) {
|
|
throw ADP.ArgumentNull("array");
|
|
}
|
|
array[arrayIndex] = Row;
|
|
}
|
|
}
|
|
}
|
|
}
|