【问题标题】:sync data grid view同步数据网格视图
【发布时间】:2015-06-01 04:14:45
【问题描述】:

我有数据网格视图,它的数据源是 c# 格式的数据表, 我怎样才能让它连续从数据库中读取表 我的意思是,如果我的程序在同一网络中的多台计算机上运行并连接到同一数据库,如果计算机 1 将行添加到数据库中,它会自动出现在计算机 2 中,而无需单击任何按钮进行刷新。

void load()
    {
        c.connect("sel_dep");
        c.com.CommandType = CommandType.StoredProcedure;

        SqlDataAdapter da=new SqlDataAdapter (c.com);
        DataTable dt = new DataTable();
        c.open();
        int last = 0;
        while (true)
        {
            if (dt.Rows.Count > 0)
                dt.Rows.Clear();
            da.Fill(dt);
            dd = dt;
            if (dt.Rows.Count != last)
            {
                last = dt.Rows.Count;
                this.Invoke((MethodInvoker)delegate { dataGridView1.DataSource = dt; dataGridView1.SelectedRows[0].Selected = true; label1.Text = dataGridView1.RowCount.ToString(); });
            }
        }
        c.close();

    }
    private void Form3_Load(object sender, EventArgs e)
    {
        aa = new Thread(() => { load(); });
        aa.Start();



    }

这是我的托盘

【问题讨论】:

  • 那么您面临的错误或问题是什么?
  • @Islam Gx:一种方法是使用Timer 并启动/调用该函数以从SQL 数据库中检索数据并刷新Datagrid.datasource。这将刷新网格,而无需刷新或按任何按钮。
  • 申请结果未出现,无法使用表单进行其他任务
  • @fujiFX 我如何在代码中做到这一点
  • Signal R 是通知所有客户数据变化的最佳选择。其他选项是使用计时器定期从数据库中提取数据,但您必须考虑带宽,并且客户端只会在计时器触发发生时更新。 asp.net/signalr

标签: c# .net


【解决方案1】:

如果您使用 Winforms 创建桌面应用程序,则不需要timer

在设计模式下,只需从表单的工具箱中拖放Timer 控件即可。

' The form load should be altered as below
private void Form3_Load(object sender, EventArgs e)
{
    ' Assume the Timer control is named as 'oTimer'
    oTimer.Enabled = true;
    oTimer.Interval = 60000;    ' In Milliseconds, equates to 1 minute
    oTimer.Start();
}

Timer 创建Tick 事件。每次间隔过去时都会触发此事件。

private void oTimer_Tick(object sender, EventArgs e)
{
    <Call your function to initiate/refresh the DataGrid.DataSource within this event>
}

要进一步了解Timer 类的工作原理,请参阅Timer Class (System.Windows.Forms)

另请参阅 Stackoverlow 问题 Winforms Timer for Dummies,其中包含大量资源和技巧来掌握 Timer 控件。

【讨论】:

    【解决方案2】:

    如果您使用的是 Sql Server,您可以查看 Query Notifications,更具体地说是 SqlDependency 类。它可用于在数据更改时从 sql server 获取通知到您的桌面应用程序中

    基于 Service Broker 基础架构,查询通知 允许在数据更改时通知应用程序。这项特征 对于提供缓存的应用程序特别有用 来自数据库(例如 Web 应用程序)的信息,并且需要 源数据更改时通知。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-02
      • 2011-02-19
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多