我在处理带有回车的字符串时遇到了一些问题。(我需要保留回车符。并且不想为它们唯一编码。)这个字符串有2个回车符......
Press the Switch
Drying
当我在 Visual Studio 的 SQL 编辑器中查看它时,它看起来像......
Press the SwitchDrying
这在技术上不是问题。我可以将内容复制并粘贴到 Excel 或其他地方,并且格式正确。
当我尝试将字符串与另一个变量进行比较时,问题就出现了,即使它具有相同的值。
我从我的 Sql 2008 R2 DB 表中查询一组记录,然后将它们与外部数据源进行比较。
所以当我遍历 SQL 结果集的记录时......
For Each row As DataRow In myTable.Rows
Dim stringVal As String = row(columnName).ToString()
' Eventually added this to see that the row was adding 2 spaces after the carriage return
Dim cstringVal() As Char = stringVal.ToCharArray
Dim csearchValue() As Char = searchValue.ToCharArray
' Originally tried
If row(columnName) = searchValue And row(columnName2) = searchValue2 Then
return True
End If
' Tried this
If stringVal = searchValue And row(columnName2) = searchValue2 Then
Return True
End If
' And this
If String.Compare(stringVal, searchValue, False) = 0 And row(columnName2) = searchValue2 Then
Return True
End If
Next
Return False
添加 char 数组后,注意到在第一个回车后以某种方式添加了 2 个空格。或者可能是它们每个之后的一个空格,因为 CR 没有在 char 数组中标识。
我没有任何代码可以分割这个字符串,只有带有回车的字符串才会导致这种情况。唯一的其他区别是一个字符串是 OLE DataAdapter,而另一个是 SQL DataAdapter。
是什么赋予了?有任何想法吗?
更新:SQL DataAdapater 似乎没有正确表示从我的查询返回的数据集中返回的 carraige。当我在 VS SQL 编辑器中查看表内容时,可以正确地将字符串从表中复制并粘贴到任何其他应用程序中。我将很快浏览代码,查看值的比较。