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