也许这是一个愚蠢的问题,或者也许我设计的代码完全错误,但无论如何,这是我的问题......
我有一个“动态”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/