none
Ошибка в коде RRS feed

  • Вопрос

  • Делаю базу данных для защиты от копирования решил добавить привязку к BIOS. Но появляется ошибка 

    Код на авторизациию

    Dim connectionString = "Data Source=РУСЛАН-ПК\SQLEXPRESS;Initial Catalog=chpu1;Integrated Security=True" Dim textValue As String = TextBox1.Text Dim queryString As String = "SELECT * FROM Mytable WHERE ([UserName])='" & textValue & "';" Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(queryString, connection) connection.Open() Dim reader As SqlDataReader = command.ExecuteReader() If reader.HasRows Then While reader.Read() If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "3416" = reader("VIP") And TextBox3.Text = reader("Data").ToString() Then Form3.Show() TextBox1.Text = "" TextBox2.Text = "" End If If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "2" = reader("VIP") And reader("Data").ToString() Then Form4.Show() TextBox1.Text = "" TextBox2.Text = "" End If If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "000" = reader("VIP") And reader("Data").ToString() Then Form4.Show() TextBox1.Text = "" TextBox2.Text = "" End If Exit While End While Else MessageBox.Show("Нет такого пользователя !") End If End Using End Sub

    Код на сбор информации об Bios и запись в базу данных 

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
                Dim searcher As New ManagementObjectSearcher
                searcher.Query = New SelectQuery("Select * From Win32_BIOS")
    
                Dim obj As ManagementObject
                Dim prop As PropertyData
                For Each obj In searcher.Get
                    For Each prop In obj.Properties
                        If IsNothing(prop.Value) = True Then
                            TextBox6.Text &= prop.Name & " = {Nothing}" & vbCrLf
                        Else
                            TextBox6.Text &= prop.Name & " = " & prop.Value.ToString & vbCrLf
                        End If
                    Next
                Next
            Catch exp As Exception
                MsgBox(exp.Message, MsgBoxStyle.Critical)
            End Try
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim a As String
            a = "Регистрация успешно завершена закройке окно"
            If TextBox5.Text <> "2" Then Stop
            Dim connectionString = "Data Source=РУСЛАН-ПК\SQLEXPRESS;Initial Catalog=chpu1;Integrated Security=True"
            Dim textValue As String = TextBox1.Text
            Dim textValue1 As String = TextBox2.Text
            Dim textValue2 As String = TextBox3.Text
            Dim textValue3 As String = TextBox4.Text
            Dim textValue4 As String = TextBox5.Text
            Dim textValue5 As String = TextBox6.Text
            Dim queryString As String = "INSERT INTO Mytable ([UserName],[Password],[Email],[VIP],[Star],[Data]) Values( '" & textValue & "','" & textValue1 & "','" & textValue2 & "','" & textValue3 & "','" & textValue4 & "','" & textValue5 & "');"
            Using connection As New SqlConnection(connectionString)
                Dim command As New SqlCommand(queryString, connection)
                connection.Open()
                Dim rowChanges As Int32 = command.ExecuteNonQuery()
            End Using
            MsgBox(a)
        End Sub
    
    Заранее спасибо

    20 апреля 2012 г. 11:02

Ответы

  • Похоже ошибка у Вас в операторе if

     If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "2" = reader("VIP") And reader("Data").ToString() Then

    в выражении

    And reader("Data").ToString(). Нужно reader("Data").ToString()  сравнить с чем-то, чтобы получить логический тип bool.

    
    



    • Изменено YatajgaModerator 20 апреля 2012 г. 11:14
    • Помечено в качестве ответа Abolmasov Dmitry 20 апреля 2012 г. 12:02
    20 апреля 2012 г. 11:12
    Модератор

Все ответы

  • Похоже ошибка у Вас в операторе if

     If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "2" = reader("VIP") And reader("Data").ToString() Then

    в выражении

    And reader("Data").ToString(). Нужно reader("Data").ToString()  сравнить с чем-то, чтобы получить логический тип bool.

    
    



    • Изменено YatajgaModerator 20 апреля 2012 г. 11:14
    • Помечено в качестве ответа Abolmasov Dmitry 20 апреля 2012 г. 12:02
    20 апреля 2012 г. 11:12
    Модератор
  • Похоже ошибка у Вас в операторе if

     If TextBox1.Text = reader("UserName").ToString() And TextBox2.Text = reader("Password").ToString() And "2" = reader("VIP") And reader("Data").ToString() Then

    в выражении

    And reader("Data").ToString(). Нужно reader("Data").ToString()  сравнить с чем-то, чтобы получить логический тип bool.

    А как мне сравнить ?

    
    




    20 апреля 2012 г. 11:47
  • Оператор if использует переменные или выражения, результатом или типом которых является тип bool. А у Вас reader("Data").ToString() возвращает string, нужно его сравнить с чем нибудь, не знаю как у Вас там задумано, например так, TextBox2.Text = reader("Data").ToString(), как Вы и делаете. А если не нужно то и вовсе исключить из кода надо.

    20 апреля 2012 г. 11:55
    Модератор
  • Оператор if использует переменные или выражения, результатом или типом которых является тип bool. А у Вас reader("Data").ToString() возвращает string, нужно его сравнить с чем нибудь, не знаю как у Вас там задумано, например так, TextBox2.Text = reader("Data").ToString(), как Вы и делаете. А если не нужно то и вовсе исключить из кода надо.

    все понял свою ошибку поторопился просто. Проблема решена )
    • Изменено Fastm0use 20 апреля 2012 г. 11:58
    20 апреля 2012 г. 11:57
  • Сравните с отрицанием с пустой строкой And Not "" (помоему так). А еще лучше передать это выжажение в функцию String.IsNullOrEmpty


    Для связи [mail]

    20 апреля 2012 г. 12:01