C# DataTable OnRowChanged事件引发两次?

C# DataTable OnRowChanged事件引发两次?,c#,events,datatable,C#,Events,Datatable,我想在用SqlDataAdapter填充数据时侦听RowChanged事件。它可以工作,但尽管数据不变,事件仍引发了两次。谁能解释一下为什么?我该怎么做才能只募集一次 class Program { static void Main(string[] args) { string connectionString = "myConnectionString"; var dataTable = new DataTable(); d

我想在用SqlDataAdapter填充数据时侦听RowChanged事件。它可以工作,但尽管数据不变,事件仍引发了两次。谁能解释一下为什么?我该怎么做才能只募集一次

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "myConnectionString";

        var dataTable = new DataTable();

        dataTable.RowChanged += new DataRowChangeEventHandler(OnDataTableRowChanged);

        using (var sqlCon = new SqlConnection(connectionString))
        {
            SqlDataAdapter adapter = new SqlDataAdapter();

            adapter.SelectCommand = new SqlCommand("select * from TableX", sqlCon);

            adapter.Fill(dataTable);
        }

        dataTable.RowChanged -= new DataRowChangeEventHandler(OnDataTableRowChanged);
    }

    static void OnDataTableRowChanged(object sender, DataRowChangeEventArgs e)
    {
        var table = (DataTable)sender;

        Console.WriteLine("line: " + e.Row[0] + ", RowCount: " + table.Rows.Count);
    }
}

它将触发两次,一次用于ADD,一次用于COMMIT

选中e.Action,它将为您提供其被触发的操作