0

改行を含む文字列の処理に問題があります。(キャリッジリターンを保持する必要があります。また、それらを一意にコーディングする必要はありません。)この文字列には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 配列で識別されないため、それぞれの後に 1 つのスペースがある可能性があります。

この文字列を分割するコードはありません。これを引き起こすのは改行を含む文字列だけです。その他の唯一の違いは、1 つの文字列が OLE DataAdapter であり、もう 1 つの文字列が SQL DataAdapter であることです。

何を与える?何か案は?

UPDATE : SQL DataAdapter が、クエリから返されたデータセットの carraige リターンを正しく表していないようです。VS SQL エディターでテーブルの内容を表示すると、テーブルから文字列を正しくコピーして他のアプリに貼り付けることができます。値の比較を見て、すぐにコードを見ていきます。

4

1 に答える 1