Select @field 来自 table 作为参数

Select @field From table as parameter

我有一个数据库 table,其中包含一些列,例如 "col_a"、"col_b",我只想检索其中的一列。但是该列取决于某些用户 selection。有时可能是 col_a、col_b、c .... 所以我的问题是我是否可以 select 来自 table 的字段作为参数? 我想像这样设置@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>

或在代码后面。 有什么想法吗?

如果从代码隐藏工作,那么你可以做类似的事情

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

中使用此程序