在asp.net中使用查询字符串参数选择列
我正在尝试使用asp:QueryStringParameter来更改我想要获取的SQL表列。但是当我尝试时,我只是将查询字符串参数作为新列的每一行 这是我到目前为止所拥有的在asp.net中使用查询字符串参数选择列,asp.net,sql,querystringparameter,Asp.net,Sql,Querystringparameter,我正在尝试使用asp:QueryStringParameter来更改我想要获取的SQL表列。但是当我尝试时,我只是将查询字符串参数作为新列的每一行 这是我到目前为止所拥有的 <asp:SqlDataSource ID="getContact" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" ProviderName="<%$ ConnectionS
<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>
只要动态列的类型相同或可以转换为相同的类型,就可以使用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
只要动态列的类型相同或可以转换为相同的类型,就可以使用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
您必须在代码隐藏中动态生成查询字符串,或者更简单地说,选择所有可能的列并更改控件中的可见性。您必须在代码隐藏中动态生成查询字符串,或者更简单地说,选择所有可能的列并更改控件中的可见性。