如何获取整个强类型DataRow的原始值

本文关键字:DataRow 强类型 原始 何获取 获取 | 更新日期: 2023-09-27 18:19:00

根据MSDN,可以在DataRow中获得单个列的原始版本。但是,这需要使用列索引或列名。这是一个强类型数据集,我不想陷入使用魔术列索引号或字符串字面量来指定我需要的列的可维护性噩梦。

是否有办法获得整个强类型行?或者,如果不可能,是否有一种方法可以使用强类型引用获得单个强类型列?

如何获取整个强类型DataRow的原始值

使用强类型引用的单个强类型列示例:

// DataTable...
SkZapDataSet.vdSkZapDocumentDataTable dt
    = args.Row.Table as vdSkZapDocumentDataTable;
// DataRow...
SkZapDataSet.vdSkZapDocumentRow dr
    = args.Row as SkZapDataSet.vdSkZapDocumentRow;
// Value...
int id = (int)dr[dt.DocumentIdColumn.ColumnName, DataRowVersion.Original];

恐怕你会全盘否定。OriginalModified之间的差异RowVersion只存在,直到AcceptChanges()被调用…一个有限的周期。Columns集合的核心是ArrayList,具有以下访问器:

public DataColumn this[int index] { get; }
public DataColumn this[string name] { get; }

我不知道你怎么用其他方法找到DataColumn