Dataview上的DataColumn.Expression RowFilter

时间:2013-12-02 14:04:22

标签: asp.net

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

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

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

现在我的问题是,我希望将所有匹配的ID与用户放入文本框中的数字一起显示。让我们说我的id由5个数字组成,用户将4个放在第一个,然后在完美世界中我将有10个匹配(以12340-12349为例)。使用RowFilter和运算符LIKE结合通配符可以非常轻松地对字符串执行此操作。但是我怎样才能在整数上做类似的事呢?我是否必须将其转换为字符串并且不会破坏rowfilter表达式?

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

1 个答案:

答案 0 :(得分:2)

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

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

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