DataTable 使用 LINQ 跳过通配符

在DataTable测查询字段值里含有 * 通配符,导致查询出错. 想到可以使用linq来替代查询语句,同时也不用考虑字段内含有其他通配符

旧查询方式

1 Dim sqlStr = $"([父品号] = '{tmpNode.Parent.Tag}' and [品名] like '{tmpNode.Title.Replace("*", "[*]")}') or [父品号] = '{tmpNode.Tag}'"
2 Dim tmpRows = BOMTableData.Select(sqlStr)

linq查询方式

1 Dim tmpRows = From item In BOMTableData
2               Where (item("父品号") = tmpNode.Parent.Tag AndAlso item("品名") = tmpNode.Title) OrElse
3                   item("父品号") = tmpNode.Tag

参考资料:

https://blog.csdn.net/zyzBulus/article/details/82112272

https://blog.csdn.net/neusoft06/article/details/19406907

猜你喜欢

转载自www.cnblogs.com/707wk/p/11868143.html