我正在使用设计出色的表,其中主键列包含#: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;改变了列名?
答案 0 :(得分:0)
我会在数据库中创建一个VIEW,其中包含所有具有更好名称的相关列,然后从该视图中进行查询。