[英]How to check if Datatable value contains part of a string input?
我想检查数据表条目是否包含用户输入字符串的一部分
例如,在数据表中是否有123456,如果用户输入1234,则我应该获得一个匹配项并获得该行中的值。
现在,如果完全匹配,我可以在行中获取值,
我检查的代码是:
string findPO = string.Format("PO = {0}",tbPOnum.Text);
DataRow[] selectRow = localDataTable.Select(findPO);
localDataTable.Rows.IndexOf(selectRow[0]);
谢谢你的帮助
它应该与LIKE表达式一起使用
string findPO = string.Format("Convert (PO,System.String) LIKE '*{0}*'",tbPOnum.Text);
DataRow[] selectRow = localDataTable.Select(findPO);
这应该返回包含该值的所有行。
有关可以与Select方法一起使用的表达式的更多信息,请参见有关DataColumn.Expression的信息。
在LIKE比较中,*和%都可以互换使用通配符。 如果LIKE子句中的字符串包含*或%,则这些字符应放在方括号([])中。 如果子句中有方括号,则每个方括号字符都应括在方括号中(例如[[]或[]])。 在模式的开头和结尾,模式的结尾或模式的开头允许使用通配符。
字符串中间不允许使用通配符。 例如,不允许使用“ te * xt”。
@Jehof-您提供的答案是正确的(使用LIKE过滤器语句)
我尝试搜索的字段是int字段,经过一番研究,我得到了下面的有效代码:
string findPO = string.Format("convert(PO, 'System.String') LIKE '%{0}%'", tbPOnum.Text);
只需循环行然后循环列(反之亦然),然后检查.IndexOf(findPO) == 0
任何单元格值。 这意味着该单元格的值以给定的字符串开头。 您也可以使用linq。 如果您需要一个代码示例,只需共享。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.