C# 在ObjectDataSource的FilterExpression中使用通配符
我的FilterExpression有些问题。我希望这一个使用两个单词之间的通配符。 我最好解释一下: 我有一个TextBoxFilter,由我的搜索字符串填充。 我希望我的FilterExpression看起来像这样:C# 在ObjectDataSource的FilterExpression中使用通配符,c#,asp.net,.net,C#,Asp.net,.net,我的FilterExpression有些问题。我希望这一个使用两个单词之间的通配符。 我最好解释一下: 我有一个TextBoxFilter,由我的搜索字符串填充。 我希望我的FilterExpression看起来像这样: ODS.FilterExpression = "NAME LIKE '" + TextBoxFilter.Text.Replace(" ", "###") + "' " ; 我想用一个特定的通配符来代替########################但每? 我试过百分比符号、
ODS.FilterExpression = "NAME LIKE '" + TextBoxFilter.Text.Replace(" ", "###") + "' " ;
我想用一个特定的通配符来代替########################但每?
我试过百分比符号、下划线、圆点和问号,但都不起作用
我的预期结果是:如果搜索“一个字符串”,我的FilterExpression可能会返回所有结果,如“一个字符串”或“一个字符串”或“一个字符串”或“一个*字符串”等
那么也许我可以用另一种方法得到这些结果?我将指定无法更改SelectMethod
希望你能得到所有的信息来帮助处理我的麻烦
谢谢,根据:
筛选器表达式语法与属性接受的语法相同
在那里,它说:
允许在模式的开头和结尾或结尾使用通配符
模式的,或在模式的开头
所以你不能用通配符那样做。您可能需要通过代码生成筛选器表达式,如下所示:
string GetFilterExpressionForName(string input) {
string trimmed = input.Trim();
return string.Format("NAME LIKE '{0}' OR NAME LIKE '{1}' OR NAME LIKE '{1}'",
trimmed,
trimmed.Replace(' ', '-'),
trimmed.Replace(' ', '_'));
// TODO: remove/replace wildcards from user input
}
这有点难看,你可能需要努力才能得到你想要的东西,但我不认为你能在不改变选择的情况下找到不同的解决方案