你如何每分钟更新一次C#中的datagridview

Dan*_*ell 5 c# datagridview winforms

我正在C#中开展一个非常简单的项目.

我有一个状态框,两个按钮和一个dataGridView.

当Form加载时,dataGridView被正确填充.

我想要做的是每隔45秒更新一次该表以反映数据库中的任何更改.

我正在寻找有关实现这一目标的技术的建议.我一直在寻找明确的信息,但似乎有点缺乏.

Dan*_*ant 8

  1. Timer向表单添加控件.(它在组件类别中)
  2. 将其Interval属性设置为45000(值表示毫秒)
  3. 在表单设计器中或代码中的某个位置设置Enabled计时器的属性True.
  4. 为计时器的Tick事件添加一个处理程序(你可以通过双击计时器来获得这个)
  5. Tick处理程序内部,更新您的dataGridView

您的处理程序将如下所示:

private void timer1_Tick(object sender, EventArgs e)
{
    // Update DataGridView
}
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因需要暂停更新,可以调用timer1.Stop()以停止计时器运行,并使用timer1.Start()它再次启动它.


BFr*_*ree 5

像其他人建议的那样,使用Timer来重新查询数据库.我唯一想补充的是,当您重新查询数据库时,不要只将DataGridView的数据源设置为新表.而是将其与现有表合并.这样做的原因是,如果用户位于网格中间,例如查看特定行,如果将DataSource重置为新表,则整个网格将刷新,并且它们将丢失其位置.讨厌地狱!如果你合并它,它将是无缝的用户.

DataTable.Merge

使用Merge方法时要注意的一件事是表需要有一个主键.仔细检查以确保DataTable本身具有主键.并不总是将其从数据库中拉回来.您可能需要执行以下操作:

table.PrimaryKey = new DataColumn[] {table.Columns["ID"]};
Run Code Online (Sandbox Code Playgroud)