繁体   English   中英

如何检查Datatable值是否包含字符串输入的一部分?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM