在 asp.net 中使用查询字符串参数选择列
Posted
技术标签:
【中文标题】在 asp.net 中使用查询字符串参数选择列【英文标题】:Using Query String Parameter to Select Column in asp.net 【发布时间】:2012-09-19 13:35:36 【问题描述】:我正在尝试使用 asp:QueryStringParameter 来更改我想要获取的女巫 SQL 表列。但是当我尝试时,我只是将查询字符串参数作为新列的每一行。
这是我目前所拥有的。
<asp:SqlDataSource ID="getContact" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString1.ProviderName %>"
SelectCommand="
SELECT
[fName],
[lName],
@c as contact
FROM
RidesMaster
WHERE
[userID] = @ID">
<SelectParameters>
<asp:QueryStringParameter Name="c" QueryStringField="c" Type="String" />
<asp:QueryStringParameter Name="ID" QueryStringField="ID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
【问题讨论】:
您必须在后面的代码中动态构建查询字符串,或者更简单的是,选择所有可能的列并更改控件中的可见性。 【参考方案1】:只要您的动态列属于同一类型或可以转换为同一类型,您就可以使用 CASE 语句来实现:
SELECT
[fName],
[lName],
CASE @c
WHEN 'column1' THEN [column1]
WHEN 'column2' THEN [column2]
WHEN 'column3' THEN [column3]
ELSE 'column4'
END as contact
FROM
RidesMaster
WHERE
[userID] = @ID
【讨论】:
以上是关于在 asp.net 中使用查询字符串参数选择列的主要内容,如果未能解决你的问题,请参考以下文章
具有固定 URI 的 ASP.NET 路由不映射查询字符串参数