【问题标题】:Refreshing a query every x time每 x 次刷新一次查询
【发布时间】:2018-08-27 12:37:30
【问题描述】:

我目前正在做一个监控应用程序,我有一个 sql 查询,它提供了我必须放入 ListView 中的所有数据,但现在我想每隔一分钟刷新一次查询。这就是它的样子。谁能帮帮我?

string text = System.IO.File.ReadAllText(@"path\query.txt");              

OracleCommand command = new OracleCommand(text, conn);               
OracleDataReader data = command.ExecuteReader();

while (data.Read())

【问题讨论】:

  • 您可以对查询使用缓存过期限制

标签: c# sql wpf


【解决方案1】:

您可以使用计时器在 1 分钟后执行它,就像这样:

private Timer timer; 

public void InitTimer()
{
    timer= new Timer();
    timer.Elapsed += OnTimerTick;
    timer.Interval = 1000; // Remember this is milliseconds
    timer.Start();
}

private void OnTimerTick(object sender, ElapsedEventArgs e)
{
    string text = System.IO.File.ReadAllText(@"path\query.txt");              

    OracleCommand command = new OracleCommand(text, conn);               
    OracleDataReader data = command.ExecuteReader();

    while (data.Read())
    ...
}

【讨论】:

  • 用你的方法,我必须把我所有的主要代码都放在一个私有的 void 中,它不起作用
  • 为什么你需要返回除void 之外的任何东西来刷新你的视图?你在使用 MVVM 吗?
  • @Juan Carlos Rodriguez 的方法正是要走的路。可以通过OnTimerTick调用你的公共代码,没问题。
  • 就是这样@linuxrocks ...你不需要将你的方法复制到OnTimerTick方法,你可以从那里调用它但我担心他/她没有使用MVVM如果他/她尝试从Elapsed 事件更新ItemsSource,它将引发异常。
猜你喜欢
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-06
  • 2018-12-20
  • 2017-08-04
  • 2021-12-25
  • 2016-03-21
相关资源
最近更新 更多