分类: C#编程
DataRowState 枚举:
Added
该行已添加到 DataRowCollection 中,AcceptChanges尚未调用。
Deleted
该行已通过 DataRow 的 Delete 方法被删除。
Detached
该行已被创建,但不属于任何 DataRowCollection。DataRow 在以下情况下立即处于此状态:创建之后添加到集合中之前;或从集合中移除之后。
Modified
该行已被修改,AcceptChanges 尚未调用。
Unchanged
该行自上次调用 AcceptChanges 以来尚未更改。
DataTable.AcceptChanges方法:提交自上次调用AcceptChanges以来对该表进行的所有更改。
调用AcceptChanges时,任何仍处于编辑模式的DataRow对象将成功结束其编辑。DataRowState也发生更改:所有Added和Modified行成为Unchanged;Deleted行被移除。
在您尝试使用DbDataAdapter.Update方法更新DataSet之后,通常会对DataTable调用AcceptChanges方法。
DataTable.RejectChanges方法:回滚自该表加载以来或上次调用AcceptChanges以来对该表进行的所有更改。
调用RejectChanges时,任何仍处于编辑模式的DataRow对象将取消其编辑。新行被移除。DataRowState设置为Modified或Deleted的行返回到其初始状态。
会出现对DataTable进行多次更改,但是通过调用RejectChanges方法拒绝这些更改的现象。
DataRow.BeginEdit方法:对DataRow对象开始编辑操作。
使用BeginEdit方法将DataRow置于编辑模式。在此模式中,事件被临时挂起,以便允许用户在不触发验证规则的情况下对多行进行多处更改。例如,如果需要确保总数列的值等于某行中借贷列的值,则可以将每一行都置入编辑模式,以便在用户尝试提交值之前挂起对行值的验证。
BeginEdit方法在用户更改数据绑定控件的值时被隐式调用;EndEdit方法在您调用DataTable对象的 AcceptChanges方法时被隐式调用。
全都摘自MSDN
分享到:
相关推荐
本文详细介绍了在C#中如何操作`DataTable`,重点在于理解`DataRowState`以及如何使用`GetChanges`方法来获取数据行的状态。通过实例代码演示了如何创建`DataTable`,添加数据,修改数据,并获取数据的状态。这些技术...
本篇将详细介绍如何在C#中有效地实现DataTable的多行删除功能。 首先,了解DataTable的基本结构。DataTable通常作为DataSet的一部分使用,它可以看作是一个内存中的数据库表,包含列(Columns)、行(Rows)以及...
允许标记某行数据为删除状态,但不会立即从表中移除,需调用`DataTable.AcceptChanges()`或`DataTable.RejectChanges()`来最终确认或撤销这一操作。 #### 二、列操作:追加与删除 对于列的操作主要包括列的添加和...
current 表示当前值,default 根据操作的不同决定行的 default 值,original 是最后一次调用 AcceptChanges() 之后的值,proposed 是调用 AcceptChanges() 之前的值。 行的状态可以通过 RowState 属性获得,例如...
本文将详细介绍如何在`DataTable`中修改特定行的特定列的值,并探讨相关的注意事项。 #### 基本概念 1. **DataTable**: 是一个内存中的二维表格,类似于关系数据库表。 2. **DataRow**: 表示`DataTable`中的一行。...
- 行操作:DataTable提供了诸如Delete、AcceptChanges和RejectChanges等方法,用于管理行的状态。 - 数据过滤:使用Select方法可以对DataTable进行查询,根据指定的条件返回满足条件的行。 - 排序:DataTable的...
`DataTable`提供了多种方法来操作数据,如`Select`用于根据条件选择行,`AcceptChanges`和`RejectChanges`用于管理数据更改,`Merge`用于合并两个`DataTable`,`Clone`用于复制`DataTable`等。 此外,`DataTable`还...
3. **提交更改**:DataTable的更改不会立即保存,除非调用了`AcceptChanges`或`RejectChanges`方法。如果你想要保留这些更改,记得在更新结束后调用`myTable.AcceptChanges()`。 4. **注意异常处理**:在实际操作中...
【DataTable技术全面讲解】 DataTable是.NET Framework中System.Data命名空间中的一个核心组件,它是ADO.NET数据访问模型的重要组成部分。在数据库编程中,DataTable通常用于在内存中存储和操作数据,即使这些数据...
在.NET框架中,DataTable是一个非常重要的数据结构,用于在内存中存储和操作表格型数据。对于初学者来说,掌握DataTable的使用是学习数据库操作的基础。本文将深入讲解如何对DataTable进行赋值,以及相关的编程技巧...
本文将详细介绍如何在ASP.NET项目中使用`DataTable`进行数据管理。 #### 二、创建DataTable 首先,我们需要创建一个`DataTable`实例。这可以通过直接调用构造函数来实现: ```csharp DataTable dt = new DataTable...
### 把DataReader转换成DataTable的方法 在.NET框架中,DataReader和DataTable是两种常见的数据处理对象。DataReader主要用于快速读取只进、只读的数据流,而DataTable则提供了内存中的表格数据结构,支持数据排序...
- `Delete()` 方法只是将该行标记为已删除状态,但仍然存在于表中,可以通过`DataTable.RejectChanges()`方法撤销删除: ```csharp dt.Rows[0].Delete(); dt.AcceptChanges(); // 提交更改 ``` 在删除多行时,...
【DataTable 介绍】 DataTable 是 .NET Framework 中 ADO.NET 数据模型的一个关键组件,它在内存中代表了一张数据表,可以存储和管理数据。当你从数据库检索数据时,或者需要在程序中处理数据集合时,DataTable 就...
使用 RowState 可以判断行的状态,例如 `if (dt.Rows[0].RowState == DataRowState.Unchanged)` 判断行是否未修改。 将 DataTable 转换为字符串 将 DataTable 转换为字符串可以使用 `System.IO.StringWriter sw = ...
Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。•在删除DataTable中的行的时候,每删除一行...
DataTable的API允许在运行时动态修改表格状态。例如,可以使用`row.add()`添加行,`column().visible()`切换列的可见性。 9. **服务器端处理** 对于大数据量的表格,可以配置DataTable使用服务器端处理模式,只...
- `AcceptChanges()`:接受对`DataTable`的所有更改,使所有行恢复为未修改状态。 - `BeginInit()`:开始初始化`DataTable`。 - `Clear()`:清除`DataTable`中的所有行。 - `Clone()`:复制`DataTable`的结构,但不...
`AcceptChanges()`方法用于提交所有未保存的更改,`BeginInit()`和`EndInit()`用于初始化和结束初始化过程,`Clear()`方法清空所有数据,`Clone()`方法创建DataTable的结构副本而不复制数据,`Merge()`方法合并两个...
两个DataTable合并, 并保留合并状态。 如果合并后记录有变更,记录的状态为修改。 如果合并后记录是新增,记录状态为新增。 如果合并后听记录是现有记录,记录状态为删除。