我有一个数据库表,其中有一些列,例如" col_a"," col_b"我想只检索它的一列。但该列依赖于某些用户选择。有时可能是col_a,col_b,c .... 所以我的问题是我是否可以从表中选择一个字段作为参数? 我想像这样设置@colName ......
<asp:SqlDataSource ID="sdsOrderErrors" runat="server" ConnectionString="<%$ ConnectionStrings:CS %>" SelectCommand="SELECT @colName AS fld FROM [a_table]">
<SelectParameters>
<asp:QueryStringParameter Name="colName" QueryStringField="colName" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
或代码背后。 有什么想法吗?
答案 0 :(得分:2)
如果从代码隐藏工作中执行此操作,那么您可以执行类似
的操作sdsOrderErrors.SelectCommand = string.Format("SELECT {0} AS fld FROM [a_table]", colName);
(OR)有一个存储过程来接受参数并执行动态查询以实现相同的
create procedure usp_testSelect(@colname varchar(30))
as
begin
declare @sql varchar(200);
set @sql = 'select '+ @colname + ' AS fld FROM [a_table]';
exec(@sql);
end
然后在ASP.NET SQLDataSource