本文整理汇总了C#中System.Data.DataRow.CancelEdit方法的典型用法代码示例。如果您正苦于以下问题:C# DataRow.CancelEdit方法的具体用法?C# DataRow.CancelEdit怎么用?C# DataRow.CancelEdit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.DataRow
的用法示例。
在下文中一共展示了DataRow.CancelEdit方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetDataRowWithLoadOption
//.........这里部分代码省略.........
try {
drcevent = RaiseRowChanging(null, dataRow, action);
if (action == DataRowAction.Nothing) { // RaiseRowChanging does not fire for DataRowAction.Nothing
dataRow.inChangingEvent = true;
try {
drcevent = OnRowChanging(drcevent, dataRow, action);
}
finally {
dataRow.inChangingEvent = false;
}
}
}
finally {
Debug.Assert(dataRow.tempRecord == recordNo, "tempRecord has been changed in event handler");
if (DataRowState.Detached == dataRow.RowState) {
// 'row.Table.Remove(row);'
if (-1 != cacheTempRecord) {
FreeRecord(ref cacheTempRecord);
}
}
else {
if (dataRow.tempRecord != recordNo) {
// 'row.EndEdit(); row.BeginEdit(); '
if (-1 != cacheTempRecord) {
FreeRecord(ref cacheTempRecord);
}
if (-1 != recordNo) {
FreeRecord(ref recordNo);
}
recordNo = dataRow.tempRecord;
}
else {
dataRow.tempRecord = cacheTempRecord;
}
}
}
if (dataRow.tempRecord != -1) {
dataRow.CancelEdit();
}
switch(loadOption) {
case LoadOption.OverwriteChanges:
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false);
this.SetOldRecord(dataRow, recordNo);
break;
case LoadOption.Upsert:
if (dataRow.RowState == DataRowState.Unchanged) {
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false);
if (!dataRow.HasChanges()) {
this.SetOldRecord(dataRow, recordNo);
}
}
else {
if (dataRow.RowState == DataRowState.Deleted)
dataRow.RejectChanges();
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false);
}
break;
case LoadOption.PreserveChanges:
if (dataRow.RowState == DataRowState.Unchanged) {
// SQLBU 500706: DataTable internal index is corrupted: '8'
// if ListChanged event deletes dataRow
this.SetOldRecord(dataRow, recordNo); // do not fire event
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false);
}
else { // if modified/ added / deleted we want this operation to fire event (just for LoadOption.PreserveCurrentValues)
this.SetOldRecord(dataRow, recordNo);
}
break;
default:
throw ExceptionBuilder.ArgumentOutOfRange("LoadOption");
}
if (hasError) {
string error = Res.GetString(Res.Load_ReadOnlyDataModified);
if (dataRow.RowError.Length == 0) { // WebData 112272, append the row error
dataRow.RowError = error;
}
else {
dataRow.RowError += " ]:[ " + error ;
}
foreach(DataColumn dc in this.Columns) {
if (dc.ReadOnly && !dc.Computed)
dataRow.SetColumnError(dc, error);
}
}
drcevent = RaiseRowChanged(drcevent, dataRow, action);
if (action == DataRowAction.Nothing) { // RaiseRowChanged does not fire for DataRowAction.Nothing
dataRow.inChangingEvent = true;
try {
OnRowChanged(drcevent, dataRow, action);
}
finally {
dataRow.inChangingEvent = false;
}
}
}
示例2: SetDataRowWithLoadOption
//.........这里部分代码省略.........
{
dataRow.inChangingEvent = false;
}
}
}
finally
{
if (DataRowState.Detached == dataRow.RowState)
{
if (-1 != tempRecord)
{
this.FreeRecord(ref tempRecord);
}
}
else if (dataRow.tempRecord != recordNo)
{
if (-1 != tempRecord)
{
this.FreeRecord(ref tempRecord);
}
if (-1 != recordNo)
{
this.FreeRecord(ref recordNo);
}
recordNo = dataRow.tempRecord;
}
else
{
dataRow.tempRecord = tempRecord;
}
}
if (dataRow.tempRecord != -1)
{
dataRow.CancelEdit();
}
switch (loadOption)
{
case LoadOption.OverwriteChanges:
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false, false);
this.SetOldRecord(dataRow, recordNo);
break;
case LoadOption.PreserveChanges:
if (dataRow.RowState != DataRowState.Unchanged)
{
this.SetOldRecord(dataRow, recordNo);
break;
}
this.SetOldRecord(dataRow, recordNo);
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false, false);
break;
case LoadOption.Upsert:
if (dataRow.RowState != DataRowState.Unchanged)
{
if (dataRow.RowState == DataRowState.Deleted)
{
dataRow.RejectChanges();
}
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false, false);
break;
}
this.SetNewRecord(dataRow, recordNo, DataRowAction.Change, false, false, false);
if (!dataRow.HasChanges())
{
this.SetOldRecord(dataRow, recordNo);
示例3: RollbackRow
internal void RollbackRow(DataRow row) {
row.CancelEdit();
SetNewRecord(row, row.oldRecord, DataRowAction.Rollback, false, true);
}
示例4: PerformPartnerTypeAddOrRemoval
/// <summary>
/// todoComment
/// </summary>
/// <param name="AChangingPartnerTypeRow"></param>
/// <param name="AIsRemoval"></param>
/// <returns></returns>
public Boolean PerformPartnerTypeAddOrRemoval(DataRow AChangingPartnerTypeRow, out Boolean AIsRemoval)
{
const String TYPECODE_COSTCENTRE = "COSTCENTRE";
Boolean ReturnValue = false;
AIsRemoval = false;
String TypeCode;
DataRow ExistingMatchingDataRow;
PPartnerTypeTable PartnerTypeTable;
PPartnerTypeRow TheNewRow;
PTypeRow CheckTypeRow;
DataRowView[] CheckTypeRows;
DialogResult CheckTypeRowsAnswer;
TRecalculateScreenPartsEventArgs RecalculateScreenPartsEventArgs;
String CostCentreLink;
PartnerTypeTable = FMainDS.PPartnerType;
try
{
TypeCode = AChangingPartnerTypeRow["TypeCode"].ToString();
ExistingMatchingDataRow = PartnerTypeTable.Rows.Find(new Object[] { ((PPartnerRow)FMainDS.PPartner.Rows[0]).PartnerKey, TypeCode });
if (ExistingMatchingDataRow == null)
{
/*
* Add Special Type
*/
// Check security permission
if (!UserInfo.GUserInfo.IsTableAccessOK(TTableAccessPermission.tapCREATE, PPartnerTypeTable.GetTableDBName()))
{
TMessages.MsgSecurityException(new ESecurityDBTableAccessDeniedException("", "create",
PPartnerTypeTable.GetTableDBName()), this.GetType());
AChangingPartnerTypeRow.CancelEdit(); // reset to unchecked
return false;
}
// Check: is this Partner Type assignable?
// MessageBox.Show("Perform check: is PartnerType assignable? TypeCode: " + TypeCode);
CheckTypeRows = FDataCache_PartnerTypeListDV.FindRows(TypeCode);
if (CheckTypeRows.Length > 0)
{
CheckTypeRow = (PTypeRow)CheckTypeRows[0].Row;
if (!CheckTypeRow.ValidType)
{
/*CheckTypeRowsAnswer = TMessages.MsgQuestion(
* ErrorCodes.GetErrorInfo(PetraErrorCodes.ERR_VALUEUNASSIGNABLE, TypeCode),
* this.GetType(), false);*/
CheckTypeRowsAnswer = MessageBox.Show(
string.Format(StrTheCodeIsNoLongerActive, TypeCode),
Catalog.GetString("Invalid Data Entered"),
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2);
if (CheckTypeRowsAnswer == DialogResult.No)
{
// reset to unchecked
AChangingPartnerTypeRow.CancelEdit();
return false;
}
}
}
// add new row to PartnerType table
PartnerTypeTable = FMainDS.PPartnerType;
TheNewRow = PartnerTypeTable.NewRowTyped();
TheNewRow.PartnerKey = FMainDS.PPartner[0].PartnerKey;
TheNewRow.TypeCode = TypeCode;
TheNewRow.CreatedBy = UserInfo.GUserInfo.UserID;
TheNewRow.DateCreated = DateTime.Now.Date;
PartnerTypeTable.Rows.Add(TheNewRow);
// Fire OnRecalculateScreenParts event
RecalculateScreenPartsEventArgs = new TRecalculateScreenPartsEventArgs();
RecalculateScreenPartsEventArgs.ScreenPart = TScreenPartEnum.spCounters;
OnRecalculateScreenParts(RecalculateScreenPartsEventArgs);
ReturnValue = true;
AIsRemoval = false;
}
else
{
/*
* Remove Special Type
*/
//.........这里部分代码省略.........