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

时间:2013-06-19 15:59:21

标签: c# .net vb.net ado.net

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

有没有办法获得整个强类型的行?或者,如果这不可能,有没有办法使用强类型引用获得单个强类型列?

2 个答案:

答案 0 :(得分:2)

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

// 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];

答案 1 :(得分:1)

恐怕你可能会在这里彻底罢工。 OriginalModified RowVersion之间的差异仅存在,直到调用AcceptChanges() ...有限的时间段。 Columns集合的核心是ArrayList,其中包含以下访问者:

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

我看不出你如何以任何其他方式找到DataColumn