C#WPF - 在SQL执行期间显示数据

时间:2014-02-06 19:13:51

标签: c# sql wpf datagrid db2

好的,我有一个运行查询的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 ......

1 个答案:

答案 0 :(得分:0)

DataGrid绑定到ObservableCollection(或更好地CollectionViewSource,这是ObservableCollection的视图),而不是DataTable和您向ObservableCollection添加了一批商品,DataGrid将自动更新以显示新商品。