gpt4 book ai didi

c# - GetChanges() 或 RowState 获取数据表的所有更改?

转载 作者:太空狗 更新时间:2023-10-29 22:23:31 26 4
gpt4 key购买 nike

Winforms 应用程序中,我必须记录数据网格(数据表)中的所有更改。换句话说,我想获得所有更改,因为它已被加载。为此,我想使用 Datatable.GetChanges()。我知道,使用 GetChanges() 我得到一个数据表,其中包含原始数据集中所有行的副本,这些行具有待处理的更改。

我现在的问题是,是否还有可能获得更多更改的附加信息。例如,我想知道是否被添加删除,或者只是被更新。如果一行已被更新 我还想知道哪些单元格已被更新?有没有办法快速获取所有这些信息,或者我是否必须与原始数据表逐行进行深度比较

还是使用 RowState 获取所有更改更好?

最佳答案

对于行的增删查RowState

对于行中的每个项目(也称为单元格)检查 DataRowVersion

        foreach (DataRow dr in dt.Rows)
{
if (dr.RowState == DataRowState.Modified)
{
var changedCols = new List<DataColumn>();
foreach (DataColumn dc in dt.Columns)
{
if (!dr[dc, DataRowVersion.Original].Equals(
dr[dc, DataRowVersion.Current])) /* skipped Proposed as indicated by a commenter */
{
changedCols.Add(dc);
}
}
// now handle the changedCols list
}
}

关于c# - GetChanges() 或 RowState 获取数据表的所有更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11830655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com