0

我正在使用一个设计精美的表,其中主键列包含 #: 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?

4

1 回答 1

0

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

于 2013-08-07T22:09:57.767 回答