2013-05-01 2 views
-3

Здравствуйте, я хочу сделать сравнение между двумя строками, первый в данной базе и сделать другой извлекается из TextBox, но результат всегда do,убедитесь, что две строки идентичны VB net.

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

+2

'результат всегда делает', что это значит? –

+0

Мне сложно понять это »... но результат всегда **' do' ** ". В любом случае, можете ли вы показать вывод «RTB»? – ajakblackgoat

ответ

1

Вы должны четко знать, что вы имеете в виду: identical, например ссылки на ту же строку в памяти или побитового эквивалентности, равна регистронезависимы ...

Чтобы проверить, что две строки равны вы использовали один из способов, в вашей выборке string.equals

Другой способ String.Compare(str1,str2), он возвращает целочисленное значение, когда две строки эквивалентны, тогда это значение будет равно 0. Когда str1 меньше str2, значение будет меньше нуля, а когда str1 больше str2, значение будет больше нуля. Этот метод имеет разные перегрузки, которые позволяют вам контролировать способ сравнения строк, в зависимости от того, что вы считаете эквивалентным. MSDN имеет примеры использования.

Case Нечувствительность пример ниже выходов «равны» в консоли

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 спасибо за вашу помощь –

Смежные вопросы