处理ComboBox的BindingSource非常慢......

时间:2018-01-26 00:27:00

标签: performance datagridview combobox dispose bindingsource

我有一个包含4个查找表的主表。所有表都绑定到通过存储过程访问的SQL表。每个查找表都有3到27行。主桌有大约22,000排(宠物食品和产品)。

我的DataGridView显示主表的行,查找列配置为ComboBoxes。我可以插入,删除,编辑主表,...所有这些功能都可以正常工作。表单的初始加载和插入新行每个大约需要一秒钟,但这并不重要。所有其他操作都相对较快。

Here is a screen shot of the DataGridView:

当我关闭表单时...只有在将一行或多行插入主表后才会出现问题。表格的关闭可能需要一分钟。在表单的结束时,我现在自己处理5个表的绑定源,以便我可以计时。每个表通常需要处理4个查找表的绑定源需要10-15秒。关闭主表的绑定源根本不需要时间。同样,这只在将新行插入主表后才会发生。我可以编辑主表行,更改查找列值和删除行,并在这些用例中关闭表单是即时的。

我已经尝试在VS中运行程序,在VS之外运行调试EXE,并在运行EXE发行版的VS之外运行,所有这些都有类似的结果。

如何防止长时间延迟处理ComboBox绑定源?这是典型的,我应该考虑哪些替代方案?

1 个答案:

答案 0 :(得分:0)

在尝试各种不成功的解决方案后,我的头撞在墙上三天后,我从头开始重建应用程序。这解决了问题,我相信我发现了原因。起初我刚刚创建了包含所有表适配器的数据集,这非常快,然后我添加了一个表单和网格来模仿我上面描述的条件。测试确认没有任何问题所以我继续使用相同的ComboBox查找添加更多表单,并继续正常工作。我很确定我以前的数据集定义中有些东西搞砸了。希望这可以帮助将来的某个人。