我有一个DataGridView
显示来自SQL table
. 它正在使用sqldependency
以便在数据更改时发出警报,并DataGridView
立即显示更新的数据。新行将定期添加到此表中,当发生这种情况时,我只想从第一个数据网格中获取那些新行并填充单独的DataGridView
.
我已经RowAdded event
对sqldependency
.
有没有人有做类似事情的经验?
我有一个DataGridView
显示来自SQL table
. 它正在使用sqldependency
以便在数据更改时发出警报,并DataGridView
立即显示更新的数据。新行将定期添加到此表中,当发生这种情况时,我只想从第一个数据网格中获取那些新行并填充单独的DataGridView
.
我已经RowAdded event
对sqldependency
.
有没有人有做类似事情的经验?
让我们调用具有所有行Grid A的第一个 DataGridView和仅显示新行Grid B的 DataGridView 。不要通过观察网格 A 的变化来定义网格 B 的内容。相反,创建自己的“新行”定义。一种简单的方法是在每次更新期间复制网格 A 的内容(在我们的 SqlDependency 对象的 OnChange 事件中)。然后,在下一次更新时,您将能够将行选择到“新行”数据集中。
这是您的 SqlDependency 对象的 OnChange 处理程序的伪代码(这应该监视填充网格 A 的 SqlCommand):
INSERT INTO LastUpdate(ID) SELECT ID FROM table_x
我要强调的一点是,这种更新策略在数据查询和 UI 之间创建了有效的分离。换句话说,驱动网格 B 的数据不依赖于网格 A。如果你坚持这个原则,你应该会得到一个更易于维护的应用程序。