【发布时间】:2017-10-31 16:21:46
【问题描述】:
嘿伙计们,我有一个应用程序,主要用于使用我使用设计器创建的一些 DataGridView 可视化数据一个数据集对象,我的 datagrids 自动绑定到该对象(使用一些生成的 BindingSource 对象),所以我只关心在我的初始化代码中填充基础表:
TableAdapter1.Fill(DataSet.Table1)
TableAdapter2.Fill(DataSet.Table2)
之后,我为 BindingSource 对象设置了一个基本过滤器,以便在我打开应用程序时仅显示最相关的数据,因此我的应用程序中有以下代码:
' Fill tables
' Link the filled data
Table1BindingSource.Filter = GetBaseFilterTable1()
Table2BindingSource.Filter = GetBaseFilterTable2()
现在过滤器非常简单,并且使用行中的几个位值进行过滤但是如果在我的开发环境中设置 first 过滤器需要大约40 毫秒(同时使用 Debug 和 Release 编译规则)当我尝试部署我的应用程序并打开已部署的版本时,我大约需要 15 秒来完成相同的指令 (我设法找到将调试器附加到部署的可执行文件)
我真的无法解决这个问题,你们中的一些人已经陷入了这样的困境吗?
如果您需要更多信息,请随时询问,我很乐意为您提供我所拥有的信息
编辑,我正在添加一些我认为可能相关但我已经忘记的信息,或者一些 cmets 不清楚的信息:
- 使用单击一次即可部署应用程序。
- 开发环境中使用的数据与部署版本使用的数据几乎相同
- 测试都在同一台电脑上运行:我的
【问题讨论】:
-
也许您的开发项目正在处理不切实际的少量数据?
-
这个应用程序使用的数据足够小(-ish,第一个表有 10k 行),所以我通常可以使用部署应用程序中使用的数据的副本来测试所有内容。
-
这是
winforms,可以在某人的桌面上运行。该桌面位于何处以及它如何连接到您的数据库?可能与网络相关的延迟。可能这是一台笔记本电脑,问题是 Wi-Fi 速度慢?您是否研究过这些潜在的瓶颈? -
抱歉耽搁了,该程序在我的内部工作网络中运行,数据库托管在通过以太网连接到公司网络的服务器上,与使用该应用程序的主机连接的位置相同。我的电脑上也显示了不同的行为,打开程序的部署版本与打开内置的 Visual Studio 一个
标签: .net vb.net winforms datagridview