asp.net - Dataview 上的 DataColumn.Expression RowFilter

标签 asp.net

也许这是一个愚蠢的问题,或者也许我设计的代码完全错误,但无论如何,这是我的问题......

我有一个“动态”sql 查询,其中不可能获取使查询参数化所需的所有参数,因此我获取数据并将其放入数据 View 中,然后搜索我想要的行显示在数据 View 中。

其中一列是名为 id 的列。 Id 是表中的主键和 auto_increment,因此它是一个 int。

现在我的问题是,我想用用户在文本框中输入的数字来显示所有匹配的 id。假设我的 id 由 5 个数字组成,用户将 4 个数字放在前面,那么在完美的世界中我将有 10 个匹配项(以 12340-12349 为例)。使用 RowFilter 和运算符 LIKE 与通配符结合,对字符串执行此操作非常容易。但我怎样才能对整数做类似的事情呢?我是否必须将其转换为字符串,这不会破坏行过滤器表达式吗?

不是生死攸关的情况...我更好奇我行走的冰是否很薄...:)

最佳答案

行过滤器 expression支持 CONVERT 函数,因此从技术上讲,您可以将整数 ID 转换为字符串来执行 LIKE 命令:

MyDataView.RowFilter = "Convert(ID, 'System.String') LIKE '1234*'";

但请尝试将过滤卸载到后端。您不可能拥有无限数量的参数,并且 SQL 非常灵活,允许您进行不同的组合。

关于asp.net - Dataview 上的 DataColumn.Expression RowFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330172/

相关文章:

asp.net - 寻找代码来呈现显示对象 View 的表单

.net - FormsAuthenticationTicket 能否在应用程序池回收后幸存下来?

ASP.NET 超链接 asp :HyperLink vs A href

javascript - ASP.NET 隐藏字段的 OnValueChange

asp.net - 根文件夹中可以有多个 Web.Config 文件吗

c# - ASP.Net 按钮控件上的 JavaScript 确认

asp.net - 我如何确定服务器端给定的 Http 请求是通过 ajax 发送的?

javascript - 从 aspx.cs 页面调用 html 页面中定义的 javascript 函数

javascript - ASP.NET CompositeScript 路径结果为 404

asp.net - IIS 负载平衡和 ASP.Net