C# DataTable OnRowChanged事件引发两次?
我想在用SqlDataAdapter填充数据时侦听RowChanged事件。它可以工作,但尽管数据不变,事件仍引发了两次。谁能解释一下为什么?我该怎么做才能只募集一次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
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,它将为您提供其被触发的操作