c# - 如何显式更改 ADO.Net DataRow 的 RowState?

标签 c# ado.net

<分区>

给定一个 ADO.Net DataRow,我如何将行的 RowState 从 Added 更改为 ModifiedDeleted?

我尝试直接设置属性:

myDataSet.Tables[0].Rows[0].RowState = DataViewRowState.ModifiedOriginal;

导致编译器出现以下错误消息:

error CS0200: Property or indexer 'DataRow.RowState' cannot be assigned to -- it is read only

最佳答案

虽然有显式设置 RowState 属性的方法,例如 SetAddedSetModifiedDelete,但我我认为最好了解自动发生的事情。

如果您需要将 RowState 设置为不变,则在该行上调用 AcceptChanges 并从那里开始。如果您需要它处于修改状态,而当前不是,则很有可能您应该在 DataRowDataTable 上调用 AcceptChanges > 逻辑中的其他地方 - 当您通过如下代码对行进行修改时,就是这样:

row["field"] = "New Value";

它将 RowState 更改为 Modified 但现在它还有一个基线,即 Original 行状态,因为您之前已经接受了更改.

我的观点是,是的,您可以使用其中的一些方法显式设置 RowState,但我觉得您可能只需要更多地使用 ADO.NET 接口(interface)就像它的目的一样。

关于c# - 如何显式更改 ADO.Net DataRow 的 RowState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15477962/

相关文章:

c# - 多进程读写一个文件

c# - 如何使用登录用户的 AccessToken 实例化 Microsoft GraphClient?

c# - 将条件表达式解析为字符串

.net - 我应该在数据访问层中保留sqlconnection吗?

c# - 数据绑定(bind)中的可空数据类型?

c# - GDI+/C# : How to save an image as EMF?

c# - 在运行时从以编程方式创建的 UserControl 中检索 XAML

.net - SQL 选择 List<string> 中的值

c# - 使用 PostgreSql 和 ADO.NET 在 C# WinForms 中锁定记录和表

asp.net - 为什么我会间歇性地收到此错误? "The server was not found or was not accessible"