【发布时间】:2013-08-09 11:45:15
【问题描述】:
我正在使用一个设计精美的表,其中主键列包含 #: 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?
【问题讨论】:
标签: asp.net sql gridview filter datasource