CodeGo.net>数据表选择:表达与空间问题

情况:

你好!我在C#项目中有一个小问题.我正在使用DataTable对象中的Select方法,并使用表达式来获取所需的内容,但是我在表达式中使用的字符串之一中的空格存在一些麻烦.

所以这是我所拥有的代码示例:

DataTable table;
//...  
DataRow[] rows = table.Select("[" + columnNameStr + "]" + " LIKE '*" + searchStr + "*'");
//...

字符串searchStr可以在其中包含空格.因此,例如,如果您在searchStr中具有诸如Bob Dude之类的名称,并且字符串应为Dude Bob,则select表达式将不返回任何结果.

题:

如果searchStr中的单词不一定正确地获得结果时要获得结果,我需要使用什么表达式?

解决方法:

将搜索字符串拆分为空格,然后使用OR在循环中构建表达式字符串.
这些思路可能对您有用:

var searchStr = "Bob Dude";
var splitSearchString = searchStr.Split(' ');
var columnNameStr = "Name";
var expression = new List<string>();
DataTable table = new DataTable();
//...  
foreach (var searchElement in splitSearchString)
{
    expression.Add(
        string.Format("[{0}] LIKE '*{1}*'", columnNameStr, searchElement));
}
var searchExpressionString = string.Join(" OR ", expression.ToArray());
DataRow[] rows = table.Select(searchExpressionString);
上一篇:Javascript-DataTables删除/隐藏列中包含重复信息的行


下一篇:给定DataTable时Google Charts draw()方法类型错误