ASP.NET GridView& SqlDataSource FilterExpression - 带有哈希/井符号的列名

时间:2013-08-07 22:01:44

标签: asp.net sql gridview filter datasource

我正在使用设计出色的表,其中主键列包含#:OTTXN#

我需要能够在从我的SqlDataSource填充的GridView中选择并显示这些值,这样可以正常工作。

当我添加FilterExpression =“='{0}'”时,代码就会出现在我身上,因为列名中有一个哈希标记/井号符号。

我能够改变select语句以使用没有井号的别名,但是SQL where子句不允许你使用列别名。

我能以任何方式使用它吗?

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataSourceID="dsIseries">
        <Columns>
            <asp:BoundField DataField="OTTXN#" HeaderText="OTTXN" 
                SortExpression="OTTXN#" />
            <asp:BoundField DataField="OTWODT" HeaderText="OTWODT" 
                SortExpression="OTWODT" />
            <asp:BoundField DataField="OTBAD1" HeaderText="OTBAD1" 
                SortExpression="OTBAD1" />
        </Columns>
    </asp:GridView>

    <asp:SqlDataSource ID="dsIseries" runat="server" 
            ConnectionString="<%$ ConnectionStrings:VM520ConnectionString %>" 
            ProviderName="<%$ ConnectionStrings:VM520ConnectionString.ProviderName %>"
            SelectCommand='SELECT ottxn#, otwodt, otbad1
                            FROM kivalib.ortxnpf
                            fetch first 100 rows only'
            FilterExpression=" = '{0}'">
        <FilterParameters>
            <asp:ControlParameter ControlID="txtSearch" PropertyName="Text" />
        </FilterParameters>    
    </asp:SqlDataSource>

修改

无需更改数据库...有没有办法可以从代码隐藏中查询列,并将结果传递回SqlDataSource或GridView,其值为&amp;改变了列名?

1 个答案:

答案 0 :(得分:0)

我会在数据库中创建一个VIEW,其中包含所有具有更好名称的相关列,然后从该视图中进行查询。