Datatable 恢复旧数据行并设置原始版本值?

Datatable 恢复旧数据行并设置原始版本值?,datatable,dataset,Datatable,Dataset,为了备份,我需要克隆整个数据行的当前值/原始值。 如果我使用: private static DataRow CopyRow(DataRow dr) { DataRow drCopy = dr.Table.NewRow(); DataRow drCopyOrig = dr.Table.NewRow(); for (int i = 0; i < dr.Table.Columns.Count; i

为了备份,我需要克隆整个数据行的当前值/原始值。 如果我使用:

 private static DataRow CopyRow(DataRow dr)
         {
             DataRow drCopy = dr.Table.NewRow();
             DataRow drCopyOrig = dr.Table.NewRow();
             for (int i = 0; i < dr.Table.Columns.Count; i++)
             {
                 drCopy[i] = dr[i];
                 drCopyOrig[i] = dr[i,DataRowVersion.Original];
             }
             return drCopy;
         }
private静态数据行CopyRow(数据行dr)
{
DataRow drCopy=dr.Table.NewRow();
DataRow drCopyOrig=dr.Table.NewRow();
for(int i=0;i
还原时,我的原始值(dr[“col”,DataRowVersion.original])将丢失,因为我无法为此表达式设置值

在访问DataRow的DataRowVersion属性之前,请确保调用DataSet或DataTable

摘自:

当对DataSet、DataTable或DataRow调用AcceptChanges时,所有 行状态为“已删除”的行将被删除。其余的行是 给定未更改的行状态,以及原始行中的值 版本将被当前行版本值覆盖。什么时候 如果调用RejectChanges,则将添加行状态为Added的所有行 远离的。其余行的行状态为“未更改”,并且 当前行版本中的值将被 原始行版本值

在访问DataRow的DataRowVersion属性之前,请确保调用DataSet或DataTable

摘自:

当对DataSet、DataTable或DataRow调用AcceptChanges时,所有 行状态为“已删除”的行将被删除。其余的行是 给定未更改的行状态,以及原始行中的值 版本将被当前行版本值覆盖。什么时候 如果调用RejectChanges,则将添加行状态为Added的所有行 远离的。其余行的行状态为“未更改”,并且 当前行版本中的值将被 原始行版本值