我必须在数据表中搜索。数据表由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“,但随后进行搜索即使最后的检查告诉我两个字符串都相同也无法正常工作(我知道我不应该相信调试窗口中有关字符串的信息,但是看起来是调试中的字符串进入了过滤器)< / p>
答案 0 :(得分:0)
用双引号转义双引号是正确的。但是,您显示的英寸标记不是“正常”的ASCII双引号(Unicode \ u0022),因为它在其上显示了更多的曲线或角度,有点像重音符号与撇号不一样。它可以是双质数(Unicode \ u2033)或右双引号(Unicode \ u201d)。如果我将您写的内容复制到MySQL表中,也将找不到该记录。一旦将英寸标记更改为普通的ASCII双引号,它将找到记录。所以有两个明显的选择: