9.14. Refreshing a DataSet Automatically Using Extended Properties
Problem
You need to automatically refresh a DataSet
periodically.
Solution
Use extended properties and a timer.
The sample code contains two event handlers and one method:
Form.Load
Sets up the sample by creating a
DataTable
containing the Categories table from the Northwind database. The default view of the table is bound to a data grid on the form. A secondDataTable
with the auto-refreshing functionality is created that also contains the Categories table from the Northwind database. The default view of the auto-refreshing table is bound to a second data grid on the form. An extended propertyRefreshTime
is added to the auto-refreshing table and set to 15 seconds—the value of the constantDATAREFRESH_SECONDS
in the sample—into the future. Finally, a thread timer is created with aTimerClassback
delegateCheckRefreshDataSet
, with a due time of one second, and a period of one second.- Update
Button.Click
Uses a
DataAdapter
to update changes made to the firstDataTable
back to the data source.CheckRefreshDataSet( )
This method is called periodically by the thread timer. The method checks whether the current time is later than the time in the
RefreshTime
extended property of the auto-refreshing table. If it is, aDataAdapter
is used to fill the table with the latest data from the data source and theRefreshTime
extended property is once again set to 15 seconds into the future.
The C# code is shown in Example 9-17.
Example 9-17. File: ...
Get ADO.NET Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.