Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ObjectDataSource的FilterExpression中使用通配符_C#_Asp.net_.net - Fatal编程技术网

C# 在ObjectDataSource的FilterExpression中使用通配符

C# 在ObjectDataSource的FilterExpression中使用通配符,c#,asp.net,.net,C#,Asp.net,.net,我的FilterExpression有些问题。我希望这一个使用两个单词之间的通配符。 我最好解释一下: 我有一个TextBoxFilter,由我的搜索字符串填充。 我希望我的FilterExpression看起来像这样: ODS.FilterExpression = "NAME LIKE '" + TextBoxFilter.Text.Replace(" ", "###") + "' " ; 我想用一个特定的通配符来代替########################但每? 我试过百分比符号、

我的FilterExpression有些问题。我希望这一个使用两个单词之间的通配符。 我最好解释一下:

我有一个TextBoxFilter,由我的搜索字符串填充。 我希望我的FilterExpression看起来像这样:

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
}
这有点难看,你可能需要努力才能得到你想要的东西,但我不认为你能在不改变选择的情况下找到不同的解决方案