C# Table.Rows[index].Delete()
If the DataRow.Delete() method is called, the RowState property of the corresponding row will be set to DataRowState.Deleted. When the status of a row is DataRowState.Deleted, we cannot access this row under normal circumstances. If you need to retrieve deleted original data, you can use the overloaded method of its entry property to pass the DataRowVersion.Original parameter.
The code is like this:
1 2 |
|
Use datatable.Rows[i].Delete() to delete rows or press the Del key on the DataGrid to delete rows and then access the table again. "Cannot pass deleted rows" appears. row to access the row's information" error. The reasons are as follows:
After Delete(), the datatable.AccepteChanges() method is required to confirm the complete deletion, because Delete() only marks the status of the corresponding column as deleted, and can also be rolled back through datatable.RejectChanges() to cancel the row. delete.
So If you want to completely delete the datarow, you need to use the Delete() and AccepteChanges() methods at the same time , or use the datatable.Rows.RemoveAt(i) method to directly delete , where i Represents the row index, and another one is datatable.Rows.Remove(DataRow dr) to delete the specified row.
However, when using datatable.Rows.RemoveAt(i), please note that if you use datatable.Rows.RemoveAt(0); datatable.Rows.RemoveAt(1); continuously, you will not delete 0, 1 in the original table. rows, but after deleting 0 rows, the original 1 row becomes 0 rows, so datatable.Rows.RemoveAt(1) actually deletes 2 rows of the original table. At this time it should be i = i - 1;
So you should use datatable.Rows.RemoveAt(i) with caution
Small note:
Row version (DataRowVersion )
The row (DataRow) object has four different row versions, namely Current, Original, proposed and default. A brief description of these row versions follows.
Current: Indicates the current value of the row. No version of the row exists for a row in the deleted state.
Original: Represents the original value of the row. The row version in the Added state does not exist
Proposed: Indicates the recommended value of the row. This row version exists for rows that do not belong to the table, that is, rows in the Detached state; this row version also exists for rows that are being edited.
Default: Indicates the default version of the row. The default row version for rows in the Added, Modified, or Unchanged state is current; for rows in the deleted state, the default row version is original. The default version for rows in the Detached state is proposed.
The above is the content of C# Table.Rows[index].Delete(). For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Guide to Active Directory with C#. Here we discuss the introduction and how Active Directory works in C# along with the syntax and example.

Guide to C# Serialization. Here we discuss the introduction, steps of C# serialization object, working, and example respectively.

Guide to Random Number Generator in C#. Here we discuss how Random Number Generator work, concept of pseudo-random and secure numbers.

Guide to C# Data Grid View. Here we discuss the examples of how a data grid view can be loaded and exported from the SQL database or an excel file.

Guide to Patterns in C#. Here we discuss the introduction and top 3 types of Patterns in C# along with its examples and code implementation.

Guide to Prime Numbers in C#. Here we discuss the introduction and examples of prime numbers in c# along with code implementation.

Guide to Factorial in C#. Here we discuss the introduction to factorial in c# along with different examples and code implementation.

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.
