好的,我有一个运行查询的SQL DB2连接,并将结果存储到DataTable中。然后将此DataTable加载到DataGrid中。该查询也在其自己的线程中运行,并使用调度程序更新UI。
这是我的代码示例:
using(DB2Connection conn = new DB2Connection("xyz"))
{
string DB2Query = query;
if(conn.State == ConnectionState.Closed) conn.Open();
DB2Command cmd = new DB2Command(DB2Query, conn);
cmd.CommandType = System.Data.CommandType.Text;
DB2DataAdapter adapter = new DB2DataAdapter(cmd);
DataTable ds = new DataTable();
adapter.Fill(ds);
this.Dispatcher.Invoce((Action)(() =>
{
Data.ItemsSource = ds.DefaultView;
Results.SelectedItem = Results.Items.GetItemAt(0);
Errors.Text = "Query Ran Successfully!!! \n" + "Total Rows: " + ds.Rows.Count;
}));
conn.Dispose();
conn.Close();
}
我的问题是这个...如果我有一个查询可以提取1,000,000行,并且我想要每10,000行搜索一次收集的数据,我该怎么做?简单地说,如何在查询仍在运行时将结果绑定到数据网格?
如果您有sql-server的解决方案,我认为它也适用于DB2Connection ......
答案 0 :(得分:0)
将DataGrid
绑定到ObservableCollection
(或更好地CollectionViewSource
,这是ObservableCollection
的视图),而不是DataTable
和您向ObservableCollection
添加了一批商品,DataGrid
将自动更新以显示新商品。