我想在使用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);
}
}
答案 0 :(得分:1)
对于COMMIT,它将为ADD触发一次。
检查e.Action它会为你提供被解雇的动作