Состояние строки (RowState)

Всем привет! Может кто-нибудь объяснить, почему после AccesptCahges() все равно выводит RowState "Detached" ?

using System;
using System.Data;



namespace RowStateDeleted
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable table = new DataTable();

            table.Columns.Add(new DataColumn("Column1"));

            DataRow row = table.NewRow();

            Console.WriteLine("Table rows count: " + table.Rows.Count);
            Console.WriteLine("RowState: " + row.RowState);
            Console.WriteLine();

            row[0] = "SomeValue";
            table.Rows.Add(row);
            table.AcceptChanges();

            Console.WriteLine("Table rows count: " + table.Rows.Count);
            Console.WriteLine("RowState: " + row.RowState);
            Console.WriteLine();

            table.Rows[0].Delete(); 

            Console.WriteLine("Table rows count: " + table.Rows.Count);
            Console.WriteLine("RowState: " + row.RowState);
            Console.WriteLine();

            table.AcceptChanges(); 
            
            Console.WriteLine("Table rows count: " + table.Rows.Count);
            Console.WriteLine("RowState: " + row.RowState);
        }
    }
}

Ответы (1 шт):

Автор решения: Alexander Petrov

При вызове метода Delete() строка не удалилась из таблицы, а пометилась удалённой. RowState стало Deleted.

После вызова AcceptChanges() строка удалилась из таблицы. Её состояние стало Detached. Вроде, всё логично.

→ Ссылка