SqlDataAdapterでデータを入力しながら、RowChangedイベントをリッスンしたいと思います。動作しますが、データが変更されていないにもかかわらず、イベントが2回発生しました。誰かが私に理由を説明できますか?一度だけレイズするにはどうすればよいですか?
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);
}
}