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

标签 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。这对名字不起作用。我能做什么?

最佳答案

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

关于asp.net - FilterExpression 搜索栏 - 多种数据类型(int 和 varchar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506443/

相关文章:

c# - 什么在 NuGet 包中调用 Start() 方法(例如 :AspNet. ScriptManager.jQuery)

.NET GridView 更新不会将 UserID 发送到 SQL 查询

asp.net SqlDataSource SelectCommand 使用 LIKE 和 QueryString

c# - Web API/OWIN、SignalR 和授权

c# - Entity Framework 检索导航属性

c# - 如何使用 C# 更改代码中的标签字体

asp.net - 如果没有绑定(bind)控件绑定(bind),Sql 数据源是否会在加载时运行选择查询?

c# - 如何连接到写在 web 服务的 web.config 中的连接字符串

c# - 如何以编程方式遍历 GridView 的页面

c# - 代码隐藏中的 GridView RowUpdating SqlDataSource.Update