如何在SQL Select语句中引用页面上的字段值

时间:2016-04-18 17:14:24

标签: sql asp.net vb.net

我知道我可以通过后面的代码完成此操作(我使用VB),但我认为我应该能够在ASP中执行此操作:sqldatasource。

我想要做的就是选择表中字段值等于页面上隐藏字段值的记录。

在树视图的选定节点更改中,我设置名为NLHF的隐藏字段的值。我在其他地方使用它,所以我知道它按预期工作(设置此值)。问题是我想在SQL select语句中引用这个值,而且我失败了。

有问题的代码是:

<asp:SqlDataSource ID="SupervisorSQLDS" runat="server"
    ConnectionString="<%$ myconnectionstring %>" 
    SelectCommand="SELECT DISTINCT ContactID, DisplayName AS ListItem FROM Contact WHERE LocationID = NLHF ORDER BY ListItem">
</asp:SqlDataSource>

我相信这只是语法......感觉不那么明亮,但是经过几个小时的观察和尝试不同的事情后我放弃了。

感谢您的光临。

1 个答案:

答案 0 :(得分:1)

您可以向查询添加参数,因此SQL变为:

SELECT DISTINCT ContactID, DisplayName AS ListItem 
FROM Contact 
WHERE LocationID = @NLHF 
ORDER BY ListItem

然后将ControlParameter绑定到数据源的选择命令

<asp:SqlDataSource ID="SupervisorSQLDS" runat="server"
    ConnectionString="<%$ myconnectionstring %>" 
    SelectCommand="SELECT DISTINCT ContactID, DisplayName AS ListItem FROM Contact WHERE LocationID = @NLHF ORDER BY ListItem">

  <SelectParameters>
    <asp:ControlParameter Name="NLHF" ControlID="NLHF" PropertyName="Value"/>
  </SelectParameters>

</asp:SqlDataSource>