您好,我想在两个字符串之间进行比较,第一个是在给定的基础中,另一个是从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
答案 0 :(得分:1)
您必须清楚地了解identical
的含义,例如在内存中引用相同的字符串或按位等价,等于不区分大小写......
要检查两个字符串是否相等,您已使用样本string.equals
中的一种方法另一种方式是String.Compare(str1,str2)
,它返回一个整数值,当两个字符串相等时,该值将为0.当str1
小于str2
时,该值将更小为零,当str1
大于str2
时,该值将大于零。此方法具有不同的重载,允许您控制字符串的比较方式,具体取决于您认为等效的内容。 MSDN有使用示例。
下面的案例不敏感示例输出"是等于"到控制台
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