我必须在Datatable中搜索。datatable是由SQL查询生成的。我必须在列中搜索一个值,当我找到该值时,我希望返回同一行中其他单元格的值。而且这很管用。问题是,我的搜索字符串也是从数据库中提供的,有时也有一些大小(英寸),双引号会给我的搜索带来混乱。我知道我应该用另一个双引号来转义双引号,但是当我这样做时,即使值是正确的,过滤器也不会返回任何行。
我有一个KeyValuePair(String, String)
列表,以及一个DataTable
搜索
For Each variable As KeyValuePair(Of String, String) In varset
Dim temp As New String(String.Format("ShortName ='{0}' AND OldValue='{1}'", variable.Key, variable.Value))
Dim rows As DataRow() = tab.Select(temp)
Console.WriteLine(variable.Key + " " + variable.Value)
If rows.Length = 0 Then
'returns an error
Else
End If
Next
当第一个查询返回搜索值时,类似于“NPT ANSI B 1.20.1",我必须将其转义为”NPT ANSI B 1.20.1",但是搜索不起作用,即使最终的检查表明两个字符串是相同的(我知道我不应该信任调试窗口中的字符串,但看起来是进入过滤器的调试中的字符串)
发布于 2019-05-24 10:42:08
用另一个双引号转义双引号是正确的。但是,您显示的英寸标记不是“正常”的ASCII双引号(Unicode \u 0022),因为它显示的曲线或角度更多,就像重音标记与撇号不同一样。它要么是双数(Unicode \u2033),要么是右双引号(Unicode \u201d)。如果我将您所写的内容复制到MySQL表中,它也不会找到记录。一旦我将英寸标记更改为正常的ASCII双引号,它就会找到记录。因此,两个明显的选择是:
https://stackoverflow.com/questions/56295706
复制