我刚刚将一堆查询结果插入到我的datagridview中,如下所示:
DataGridView1.DataSource = AVLQuery.ToList();
当我要跟踪字段的更新并将更新的字段作为新行添加到datagridview的顶部时,我只是将上述查询的副本进行了比较:
host = AVLQuery.CopyToDataTable<DataRow>();
然后在计时器的滴答之后,这是重新考虑的查询:
IEnumerable<DataRow> AVLQ = (from AVL_D in DB_AxleLog.AsEnumerable()
join cId in checkpointID on AVL_D.check equals cId.check
select new
{
AVL_D.a;
AVL_D.b;
AVL_D.c;
}) as Enumerable<DataRow>
尝试将其放入数据表中,并将结果与datagridview的前值进行比较,即host
:
DataTable dt = new DataTable();
try
{
dt = AVLQ.CopyToDataTable();
}
catch(ArgumentNullException ex)
{
// print stack trace
}
var update = dt.asEnumerable().Intersect(host.AsEnumerable(), DataRowComprar.Default);
现在,update
结果应添加到datagridview
我刚试过这个:
dt.Rows.Add(update);
DataGridView1.DataSource = dt;
哪个不起作用......
有没有人知道要处理这个案子?