在数据网格上显示数据太慢

时间:2014-04-22 07:25:34

标签: c# wpf wpfdatagrid

我有一个数据网格(WPF / C#),它从相当大的MySQL视图中提取了两个字段。但是,渲染到屏幕上需要太长时间,我想知道是否有更快的方法?

private void SetupDataGrid()
{
    try
    {
        _con.Open();
        var com = new MySqlCommand("SELECT `Record ID`, `Company Name` FROM tblTest.all;") { Connection = _con, CommandType = CommandType.Text };
        var dt = new DataTable();
        var sdt = new MySqlDataAdapter(com);
        sdt.Fill(dt);
        DataGridActivities.DataContext = dt;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
    _con.Close();
}

2 个答案:

答案 0 :(得分:2)

您可以在网格中引入分页,并且只从数据库中提取您要显示的记录。另一种方法是提取数据,缓存数据,然后访问缓存 - 但在这种情况下,第一轮时间仍然很慢。

如果提取大数据集是个问题,我会考虑只提取当前页面的项目。

使用MySQL,您可以通过以下方法执行此操作

SELECT * FROM [TABLE] LIMIT 5,10;  

答案 1 :(得分:0)

哪个部分正在放慢速度?您是否尝试过SQL查询的时间?

从未以这种方式使用MySQL,但通常的优化技巧是stored proceduresindexes

除非您确实想要在同一页面中显示所有记录,否则您应该考虑adding pagination in your query