-3

こんにちは、2 つの文字列を比較したいのですが、最初は指定されたベースにあり、もう 1 つは から取得されますTextBoxが、結果は常にdo,

Imports System.Data
Imports System.Data.SqlClient
Imports System.Text.RegularExpressions

Public Class Form1

    Private Sub Bcon_Click(sender As Object, e As EventArgs) Handles Bcon.Click

        Dim cnn As SqlConnection = New SqlConnection("Data Source=BANIX;Initial Catalog=mydb;Integrated Security=True;Connect Timeout=15;Encrypt=False;")
        Dim cmd As New SqlCommand("select * from utilisateurs", cnn)
        Dim rd As SqlDataReader

        Dim sr As String = vbNullString

        Try
            cnn.Open()
            rd = cmd.ExecuteReader
            While rd.Read
                sr = rd.GetString(1)
                RTB.AppendText(Environment.NewLine & "DB login = " & sr)
                RTB.AppendText(Environment.NewLine & "TBLogin = " & TBlogin.Text)
                RTB.AppendText(Environment.NewLine & "IsMatch sr:" & Regex.IsMatch(TBlogin.Text, sr))
                RTB.AppendText(Environment.NewLine & "Equals sr : " & String.Equals(TBlogin.Text, sr))

                If (TBlogin.Text = sr) Then
                    RTB.AppendText(Environment.NewLine & "Identique")
                Else
                    RTB.AppendText(Environment.NewLine & "n'est pas Identique")
                End If
            End While
            rd.Close()

        Catch ex As Exception
            RTB.AppendText(Environment.NewLine & " cannot connect !")
        End Try

        cnn.Close()

    End Sub

End Class
4

1 に答える 1

1

identicalたとえば、メモリ内の同じ文字列への参照、ビットごとの等価性、大文字と小文字を区別しない等号など、 の意味を明確に理解する必要があります。

2 つの文字列が等しいことを確認するには、サンプルstring.equalsのいずれかの方法を使用しました。

もう 1 つの方法はString.Compare(str1,str2)、整数値を返します。2 つの文字列が等しい場合、この値は 0になりstr1ます。このメソッドにはさまざまなオーバーロードがあり、同等と見なすものに応じて、文字列を比較する方法を制御できます。MSDNに使用例があります。str2str1str2

以下の大文字と小文字を区別しない例では、「Are Equal」がコンソールに出力されます

  Dim str1 As String = "TestString" 
  Dim str2 As String = "teststring" 
  If String.Compare(str1, str2, StringComparison.OrdinalIgnoreCase) = 0 Then
      Console.WriteLine("Are Equal")
  Else
      Console.WriteLine("Are Not Equal") 
  End If 
于 2013-05-01T09:19:10.517 に答える