更新计数器不更新我的 DataGridView
Update Counter not updating my DataGridView
我在 Visual Studio 2015 年创建了一个 Windows 表单应用程序。我让它与我们的 SQL 服务器完美地进行通信和共享,除了一个功能。我想在表单上放置一个 "live" 计数器,每 3(或几秒)秒更新一个值。柜台的工作是跟踪从我们的仓库运出的库存(只需要担心从我们的 SQL 服务器获取该信息,该服务器已经具备该功能,在此之前没有)并显示该信息。不必花哨,只要准确。
public void InitializeTimer()
{
var timer = new System.Timers.Timer();
timer.Interval = 3;
timer.Start();
timer.Elapsed += keep_track_of_inventory_being_shipped;
}
private void keep_track_of_inventory_being_shipped(object sender, EventArgs e)
{
RefreshMyForm();
}
private void RefreshMyForm()
{
this.TableAdapter.Fill(this.DataSet.CMS);
}
}
我以前问过这个问题 (),我以为我答对了,但引起我注意我错了。很遗憾我回来了...我试图通过对 SO 和其他来源的研究来修改代码以使其正常工作,因此这段代码看起来与我过去发布的 URL 中的代码不同。没有骰子。
其他信息:当程序首次加载时,"this.TableAdapter.Fill(this.DataSet.CMS);" 每隔几秒(或几分钟,随便什么)加载我想要刷新的计数器。计数器工作后我会担心这个)。它确实会在程序启动时显示正确的计数,但我似乎根本无法刷新它。我知道最后两种方法可能有点矫枉过正,但我决定保持原样并询问。我从低间隔开始只是为了检查它是否正在更新。不是:/ 我不明白为什么没有抛出错误,或者为什么 "this.TableAdapter.Fill(this.DataSet.CMS);" 可以在开始时从我们的数据库中正确更新计数,但不能以这种方式刷新?如果不是要求太多,我更愿意理解这一点以及修复建议,而不仅仅是修复。
tchelidze 发布的原始解决方案是我之前使用的解决方案,但我确信责任在于我没有正确执行他的建议。我很感激我能得到的任何帮助,长期潜伏在这里,我喜欢 site/meta。谢谢大家
那是因为你需要在进入RefreshMyForm
时调用timer.Stop()
,然后在填充方法完成后调用timer.Start()
,而且这个方法之外的时间是不可访问的public void InitializeTimer()
你应该在表格上放一个计时器,然后这样做你应该从 timer1_Tick Event
调用你的 RefreshMyForm
我在 Visual Studio 2015 年创建了一个 Windows 表单应用程序。我让它与我们的 SQL 服务器完美地进行通信和共享,除了一个功能。我想在表单上放置一个 "live" 计数器,每 3(或几秒)秒更新一个值。柜台的工作是跟踪从我们的仓库运出的库存(只需要担心从我们的 SQL 服务器获取该信息,该服务器已经具备该功能,在此之前没有)并显示该信息。不必花哨,只要准确。
public void InitializeTimer()
{
var timer = new System.Timers.Timer();
timer.Interval = 3;
timer.Start();
timer.Elapsed += keep_track_of_inventory_being_shipped;
}
private void keep_track_of_inventory_being_shipped(object sender, EventArgs e)
{
RefreshMyForm();
}
private void RefreshMyForm()
{
this.TableAdapter.Fill(this.DataSet.CMS);
}
}
我以前问过这个问题 (
其他信息:当程序首次加载时,"this.TableAdapter.Fill(this.DataSet.CMS);" 每隔几秒(或几分钟,随便什么)加载我想要刷新的计数器。计数器工作后我会担心这个)。它确实会在程序启动时显示正确的计数,但我似乎根本无法刷新它。我知道最后两种方法可能有点矫枉过正,但我决定保持原样并询问。我从低间隔开始只是为了检查它是否正在更新。不是:/ 我不明白为什么没有抛出错误,或者为什么 "this.TableAdapter.Fill(this.DataSet.CMS);" 可以在开始时从我们的数据库中正确更新计数,但不能以这种方式刷新?如果不是要求太多,我更愿意理解这一点以及修复建议,而不仅仅是修复。
tchelidze 发布的原始解决方案是我之前使用的解决方案,但我确信责任在于我没有正确执行他的建议。我很感激我能得到的任何帮助,长期潜伏在这里,我喜欢 site/meta。谢谢大家
那是因为你需要在进入RefreshMyForm
时调用timer.Stop()
,然后在填充方法完成后调用timer.Start()
,而且这个方法之外的时间是不可访问的public void InitializeTimer()
你应该在表格上放一个计时器,然后这样做你应该从 timer1_Tick Event
RefreshMyForm