gpt4 book ai didi

c# - 如何复制/克隆数据表

转载 作者:行者123 更新时间:2023-11-30 16:25:16 25 4
gpt4 key购买 nike

我有一个将由用户修改的数据表。我想确定发生了什么变化并在数据库中保留记录。

我认为这样做的最佳方法是在进行任何更改之前复制该 DataTable,并在用户保存表单时验证更改的内容。

问题是无论我使用 myDataTable.Clone() 还是 myDataTable.Copy(),数据总是相同的。所以我猜他们只是在表之间创建引用。

你会如何处理?

最佳答案

试试 DataSet.HasChanges 方法。这将告诉您数据集是否有任何更改,例如删除或添加的行、修改的行等。

您也可以调用 DataSet.GetChanges 查看发生了什么变化。此方法将返回更改的副本。

例如,你可以说:

private void VerifyChanges(DataSet dataSet)
{
if(!dataSet.HasChanges(DataRowState.Modified)) return;
var changedDataSet = dataSet.GetChanges(DataRowState.Modified);

//... do the tracking or whatever else you want here.
}

或者,如果您不想获取所有数据集更改,而只想来自特定表的更改:

private void VerifyChanges(DataSet dataSet, string tableName)
{
if(!dataSet.HasChanges(DataRowState.Modified)) return;
var changedTable = dataSet
.Tables[tableName]
.GetChanges(DataRowState.Modified);

//... do the tracking or whatever else you want here.
}

最后,要从修改后的 DataSet 中提取原始值,您可以编写代码:

row[columnIndex, DataRowVersion.Original]

关于c# - 如何复制/克隆数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10129465/

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