none
SQL: Problema de conexão RRS feed

  • Pergunta

  • Estou com o seguinte código tentando fazer a conexão com o banco de dados:

    Private Sub Logar_Click(sender As Object, e As EventArgs) Handles Logar.Click
    
            Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)
    
            command.Parameters.Add("@username", MySqlDbType.VarChar).Value = EmailTextBox.Text
            command.Parameters.Add("@password", MySqlDbType.VarChar).Value = PasswordTextBox.Text
    
            Dim adapter As New MySqlDataAdapter(command)
            Dim table As New DataTable()
    
            adapter.Fill(table)
    
            If table.Rows.Count = 0 Then
    
                MessageBox.Show("E-mail ou senha inválidos!")
    
            Else
    
                MessageBox.Show("Login feito com sucesso!")
    
                Dim newForm As New Menu()
                newForm.Show()
                Me.Hide()
    
            End If
    
        End Sub

    O problema é que está dando um erro na linha 19 e como sou iniciante, não tenho ideia de como resolver. Já tentei de tudo, eis o erro:

    "connection" não está declarado. Ele pode estar inacessível devido ao seu nível de proteção.

    O que preciso alterar no código para solucionar o erro?
    terça-feira, 7 de janeiro de 2020 18:09

Respostas

  • O correto é assim:
            Dim connStr As String = "server=******;user=unturned_dorelli;database=unturned_launcher;port=3306;password=*******;"
            Dim connection As New MySqlConnection(connStr)
            Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)


    Você tinha colocado invertido!

    terça-feira, 7 de janeiro de 2020 18:54

Todas as Respostas

  • Amigo,

    Você não declarou a conexão que esta tentando usar nessa linha:

     Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)

    Para resolver você precisa declarar um objeto do tipo Connection, inclua o trecho abaixo no seu código, alterando os dados do exemplo para o do seu servidor de banco.

    Dim connStr As String = "server=localhost;user=root;database=world;port=3306;password=******;"
    Dim connection As New MySqlConnection(connStr)

    seu código ....

    Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)

    terça-feira, 7 de janeiro de 2020 18:18
  • Opa, obrigado pela rápida resposta! Eu fiz o que você disse, alterei os dados mas agora dá o seguinte erro:

    Código      | Descrição
    BC32000   | "Variável local "connection" não pode ser referida antes de ser declarada (linha 9).

    O código como ficou depois da alteração:

        Private Sub Logar_Click(sender As Object, e As EventArgs) Handles Logar.Click
    
            Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)
            Dim connStr As String = "server=******;user=unturned_dorelli;database=unturned_launcher;port=3306;password=*******;"
            Dim connection As New MySqlConnection(connStr)
    
            command.Parameters.Add("@username", MySqlDbType.VarChar).Value = EmailTextBox.Text
            command.Parameters.Add("@password", MySqlDbType.VarChar).Value = PasswordTextBox.Text
    
            Dim adapter As New MySqlDataAdapter(command)
            Dim table As New DataTable()
    
            adapter.Fill(table)
    
            If table.Rows.Count = 0 Then
    
                MessageBox.Show("E-mail ou senha inválidos!")
    
            Else
    
                MessageBox.Show("Login feito com sucesso!")
    
                Dim newForm As New Menu()
                newForm.Show()
                Me.Hide()
    
            End If
    
        End Sub

    terça-feira, 7 de janeiro de 2020 18:29
  • O correto é assim:
            Dim connStr As String = "server=******;user=unturned_dorelli;database=unturned_launcher;port=3306;password=*******;"
            Dim connection As New MySqlConnection(connStr)
            Dim command As New MySqlCommand("SELECT `username`, `password` FROM `loginsystem` WHERE `username` = @username AND `password` = @password", connection)


    Você tinha colocado invertido!

    terça-feira, 7 de janeiro de 2020 18:54
  • Agora foi! Muito obrigado!
    terça-feira, 7 de janeiro de 2020 18:59
  • Blz, marque como respondido pra finalizar esse post
    terça-feira, 7 de janeiro de 2020 19:06