【发布时间】:2011-11-04 14:17:19
【问题描述】:
我需要提交一份包含三个类似过滤器的报告
select * from foo where condition 1 and condition 2 and condition 3
所以我使用对象数据源并将三个参数绑定到三个不同的下拉菜单,效果很好,但是有人问我,下拉菜单中的第一个选项是“全部”——意思是没有过滤器。 由于我只知道如何使用 sqldata 源来执行此操作,因此我切换了控件并使用了以下代码
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT * FROM [Tickets_data] ORDER BY [Open_Time]"
FilterExpression="[Lote] like '{0}%'">
<FilterParameters>
<asp:ControlParameter ControlID="DropLote" Name="Lote" PropertyName="SelectedValue" Type="String"/>
</FilterParameters>
</asp:SqlDataSource>
它可以工作,但是加载时间很慢,比如 9 或 10 秒,而且下拉菜单中的每次刷新也非常慢。
有什么建议吗?
【问题讨论】:
-
您是否尝试过分析您的 SQL 以了解它为什么很慢?您使用 select 语句检索了多少数据?
-
哪里慢了?查询是否需要很长时间才能运行?使用 sql server 查询分析器(如果您使用的是 sql server)来查找。
-
另外请记住,如果您将大量输出渲染为表格,浏览器将等到整个表格下载完成后再渲染。如果您使用更简单的标记,您可能会发现页面更早开始呈现。
标签: c# asp.net sql objectdatasource