我有一个数据表格,显示一个与SQL服务器数据库绑定的表。 我想设置一个每60秒的定时器,检查任何更新,然后显示最新的更新数据。
到目前为止,我已经为datagrid创建了一个事件处理程序,其中包括对象调度定时器
private void dataGrid1_loaded(object sender, RoutedEventArgs e)
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 60);
dispatcherTimer.Start();
现在我不知道如何进一步处理事件处理程序,以处理来自数据库的新更新数据。
dispatcherTimer_Tick
下面是我的选择语句,用于填充数据表格。
private void Page_Loaded(object sender, RoutedEventArgs e)
String selectstatement = "select top 2 ItemID, ItemName,ConsumerName, Street, DOJ from ConsumarTB order by ItemID ";
da = new SqlDataAdapter(selectstatement, con);
ds = new DataSet();
da.Fill(ds);
dataGrid1.ItemsSource = ds.Tables[0].DefaultView;
catch (SqlException e)
Console.WriteLine(e.Message);
有很多方法可以改善你上面的情况。 但以下是我想尝试的开始。
下面将在页面加载时填充你的数据表格,设置一个定时器,每60秒滴答一次。 当计时器跳动时,它将调用一个方法,再次向网格加载数据。
//On PageLoad, populate the grid, and set a timer to repeat ever 60 seconds private void Page_Loaded(object sender, RoutedEventArgs e) RebindData(); SetTimer(); catch (SqlException e) Console.WriteLine(e.Message); //Refreshes grid data on timer tick protected void dispatcherTimer_Tick(object sender, EventArgs e) RebindData(); //Get data and bind to the grid private void RebindData() String selectstatement = "select top 2 ItemID, ItemName,ConsumerName, Street, DOJ from ConsumarTB order by ItemID "; da = new SqlDataAdapter(selectstatement, con); ds = new DataSet(); da.Fill(ds); dataGrid1.ItemsSource = ds.Tables[0].DefaultView; //Set and start the timer private void SetTimer() DispatcherTimer dispatcherTimer = new DispatcherTimer();