2013-05-01 140 views
-3

你好,我想提出兩個字符串之間進行比較,首先是在給定的基礎和做其他的從TextBox檢索,但結果總是do檢查兩個字符串是否相同的VB網。

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

請確保您的文章都是英文的,謝謝。你還可以提供你收到的任何錯誤(如果有的話),你試過的東西等,等等...... – Sam 2013-05-01 09:03:21

+2

'結果總是做',這是什麼意思? – 2013-05-01 09:04:31

+0

我很難理解這個「......但結果總是**'做**」。無論如何,你能顯示RTB的輸出嗎? – ajakblackgoat 2013-05-01 09:05:11

回答

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 
+0

我已經使用這種方法,但它沒有工作,我發現在SQL服務器的數據聲明中的問題 謝謝你的幫助 – 2013-05-01 11:04:58

相關問題