嘿伙计们,我有一个应用程序用于主要使用一些DataGridView可视化数据我使用设计器创建的数据集对象 datagrids自动绑定(使用一些生成的BindingSource对象),所以我只关心在我的初始化代码中填充基础表:
TableAdapter1.Fill(DataSet.Table1)
TableAdapter2.Fill(DataSet.Table2)
之后我为BindingSource对象设置了一个基本过滤器,以便在我打开应用程序时只显示最相关的数据,所以我在我的应用程序中有以下代码:
' Fill tables
' Link the filled data
Table1BindingSource.Filter = GetBaseFilterTable1()
Table2BindingSource.Filter = GetBaseFilterTable2()
现在过滤器非常简单,如果在我的开发环境中设置第一个过滤器,则使用行中的几个位值进行过滤40ms (使用调试和发布编译规则)当我尝试部署我的应用程序并打开已部署的版本时,我会在 15秒内完成相同的指令 (我设法找到将调试器附加到已部署的可执行文件)
我真的无法解决这个问题你有些人已经陷入了这样的困境吗?
如果您需要更多信息,我会很高兴为您提供我所拥有的信息
编辑,我正在添加一些我认为可能相关且我已经忘记的信息,或者评论中不清楚的信息:
答案 0 :(得分:0)
我已尝试解决我的问题,我设法解决了这个问题,我在将数据表链接到datagridviews之前设置了Filter属性
所以它现在的代码是这样的:
TableAdapter1.Fill(DataSet.Table1)
TableAdapter2.Fill(DataSet.Table2)
Table1BindingSource.Filter = GetBaseFilterTable1()
Table2BindingSource.Filter = GetBaseFilterTable2()
' This was moved down after setting the Filter Property
Table1BindingSource.DataSource = DataSet.Table1
Table2BindingSource.DataSource = DataSet.Table2
而不是
TableAdapter1.Fill(DataSet.Table1)
TableAdapter2.Fill(DataSet.Table2)
Table1BindingSource.DataSource = DataSet.Table1
Table2BindingSource.DataSource = DataSet.Table2
Table1BindingSource.Filter = GetBaseFilterTable1()
Table2BindingSource.Filter = GetBaseFilterTable2()