【问题标题】:c# Noticing Table Changesc# 注意到表的变化
【发布时间】:2016-10-08 19:26:29
【问题描述】:

我想知道如果 DataTable 发生更改,有什么简单的方法可以注意到。

基本上我有一个计时器,它在其TicK Event 中从SQL Server 返回一个DataTable

我的方法:

    private void GetInfo(Timer T)
    {
        T.Interval = 2000;
        T.Start();
        T.Tick += T_Tick;
    } 


    private void T_Tick(object sender, EventArgs e)
    {
        GetInfo();
    }

我的Getinfo() 显示在DataGridView 中返回的数据

仅当行甚至单个单元格发生更改时刷新网格视图的最简单或最干净的方法是什么?

因为即使没有发生更改,它也会不断刷新DataGridview,如果没有发生更改,我不想刷新它!

更改:表示任何新的INSERTUPDATEDELETE 查询对表生效

编辑: 如果我从数据库中获取一个新的数据表(比实际数据表进行了修改),我如何在它们之间进行比较,如果有一些变化或一些不同,则在 datagridview 中显示新的数据表

【问题讨论】:

  • DataTables 有您可以订阅的事件 - 与对数据库的更改不同。
  • 我知道但它不知道如何组合它,比如如果目标是从数据库中获取一个新的数据表(比实际的数据表修改)我如何在它们之间进行比较以及是否有一些变化或一些不同之处在 datagridview 中显示新的
  • 如果你真的想在底层表发生变化时得到通知,并且它是 SQL Server(不确定“SQL 数据库”是什么意思)有 SQL 依赖类
  • 是的,先生,但仍然不知道在两个数据表之间比较传入的一个和实际的一个最干净的方法
  • 我不明白这个问题。如果刷新绑定到 DGV 的数据表(不是 DataGridView,也不是创建新的 DataTable),更改会自动显示。一个 DataAdapter 正是为你做这件事。 SQLDependency 不需要计时器

标签: c# sql datatable


【解决方案1】:

已解决如果两个DataTables之间没有注意到差异,则通过比较表之间的差异,但如果存在则将新的datatable设置为数据表的来源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2019-10-14
    相关资源
    最近更新 更多