TransWikia.com

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

Stack Overflow на русском Asked by user399212 on December 23, 2021

Всем привет!
Может кто-нибудь объяснить, почему после 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);
        }
    }
}

One Answer

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

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

Answered by Alexander Petrov on December 23, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP