【发布时间】:2014-03-04 00:29:14
【问题描述】:
如果我运行这段代码,不到一秒就会返回结果 -
<asp:SqlDataSource ID="OrdersSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:OperationsPortal.Properties.Settings.JDEProd %>" SelectCommand="
SELECT A.Test
FROM PRODDTA.F5547510 AS B WITH(NOLOCK)
INNER JOIN PRODDTA.F4211 AS A WITH(NOLOCK) ON B.SCDOCO = A.SDDOCO
INNER JOIN PRODDTA.F0101 C WITH(NOLOCK) ON A.SDAN8 = C.ABAN8
**WHERE (A.SDMCU = ' CHP')**
ORDER BY ORDERDATE">
<SelectParameters>
<asp:ControlParameter ControlID="drpBranch" DefaultValue="CHP" Name="BranchPlant" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
但是,一旦我将 WHERE 语句更改为使用选择参数,查询就会超时 -
<asp:SqlDataSource ID="OrdersSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:OperationsPortal.Properties.Settings.JDEProd %>" SelectCommand="
SELECT A.Test
FROM PRODDTA.F5547510 AS B WITH(NOLOCK)
INNER JOIN PRODDTA.F4211 AS A WITH(NOLOCK) ON B.SCDOCO = A.SDDOCO
INNER JOIN PRODDTA.F0101 C WITH(NOLOCK) ON A.SDAN8 = C.ABAN8
**WHERE (A.SDMCU = ' ' + @BranchPlant)**
ORDER BY ORDERDATE">
<SelectParameters>
<asp:ControlParameter ControlID="drpBranch" DefaultValue="CHP" Name="BranchPlant" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
有谁知道我可以做些什么来解决这个问题?如果我在 Management Studio 中运行它,我会得到类似的结果,但在 Management Studio 中,我可以将“OPTION(RECOMPILE)”添加到查询的末尾并解决问题。但是,这在我的 SQLDatatSource SelectCommand 中似乎不起作用。
【问题讨论】:
标签: c# asp.net parameters sqldatasource