在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
参考资料: