FilterExpression搜索栏 - 多种数据类型(int和varchar)

时间:2013-12-10 22:13:46

标签: asp.net sqldatasource

我想在搜索栏中创建一个文本框。我的表有一个int“id”和varchar(50)“name”。我想在同一文本框中搜索名称或ID。这甚至可能吗?我已经尝试了很多东西,但尚未找到解决方案。

这就是我所拥有的:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
 ConnectionString="<%$ ConnectionStrings:New_QuickBooksConnectionString %>"      
        SelectCommand="SELECT * FROM [Testing1]" FilterExpression="([id] = {0}) OR ([name] LIKE     '%(CAST {0} AS VARCHAR(50))%')">
<FilterParameters>
 <asp:ControlParameter ControlID="TextBox1" Name="id" PropertyName="Text" Type="int32" />
</FilterParameters>
</asp:SqlDataSource> 

这只是在输入数字时返回id。它不适用于名称。我该怎么办?

1 个答案:

答案 0 :(得分:2)

尝试更改type = "String"并将ID转换为String,例如CONVERT([Id],'System.String') like '{0}'