Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elnata COsta

Verificar se textbox são iguais a dados do DB!

Recommended Posts

Bom pessoal vendo alguns tutoriais na net cheguei ao seguinte código do meu projeto com conexão MySql com VB.NET:

 

Obs.: Ele não está funcionando

 

Eu gostaria que ele verificasse se o valor da TextBoxLogin.Text e da TexBoxSenha.Text fossem igual ao login e senha do banco de dados elas exibissem o FORM2 mas não ta funcionando o que há de errado com o código pessoal?? Me ajudem aew!! :upset:

 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'PARTE DA CONEXÃO COM O BANCO DE DADOS

        Dim CONEXAO As New MySqlConnection
        Dim COMMAND As New MySqlCommand
        Dim ADAPTADOR As New MySqlDataAdapter
        Dim DADOS As New DataTable
        Dim SQL As String
        Dim VERIFICA As String
        
        CONEXAO = New MySqlConnection
        CONEXAO.ConnectionString = "SERVER=localhost;user id=root;password=;database=vaadministration"
        SQL = "SELECT * FROM users"
        VERIFICA = "SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'"

        Try
            CONEXAO.Open()
            Try

                COMMAND.Connection = CONEXAO
                COMMAND.CommandText = SQL
                ADAPTADOR.SelectCommand = COMMAND
                ADAPTADOR.Fill(DADOS)
                ' DataGridView1.DataSource = DADOS

                If COMMAND.CommandText = SQL = VERIFICA Then
                    Form2.Show()
                Else
                    Form3.Show()
                End If

            Catch ex As Exception

            End Try

        Catch erro As MySqlException
            Form5.Show()

        Finally
            CONEXAO.Dispose()
        End Try
        'FINALIZA CONEXÃO COM O BANCO DE DADOS

        'If Texbox1.Text = "Admin" And TextBox2.Text = "admin" Then
        'Form2.Show()
        '  Else
        'Form3.Show()
        ' End If
    End Sub

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ajeitar seu código primeiro cara:

 

 

 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        //PARTE DA CONEXÃO COM O BANCO DE DADOS


        Dim CONEXAO As MySqlConnection = New MySqlConnection("SERVER=localhost;user id=root;password=;database=vaadministration")
        Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'", CONEXAO)
        Dim ADAPTADOR As MySqlDataAdapter = New MySqlDataAdapter(COMMAND)
        Dim DADOS As New DataTable()






        Try


            CONEXAO.Open()


            ADAPTADOR.Fill(DADOS)


            If DADOS.Rows.Count > 0 Then
                //Você tem o usuário registrado


            Else
                //Você não tem o usuário registrado
            End If


            CONEXAO.Close()


        Catch erro As Exception
            //Form5.Show()
            MsgBox(erro.Message)


        End Try


    End Sub

Veja se funciona agora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ajeitar seu código primeiro cara:

 

 

 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        //PARTE DA CONEXÃO COM O BANCO DE DADOS


        Dim CONEXAO As MySqlConnection = New MySqlConnection("SERVER=localhost;user id=root;password=;database=vaadministration")
        Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'", CONEXAO)
        Dim ADAPTADOR As MySqlDataAdapter = New MySqlDataAdapter(COMMAND)
        Dim DADOS As New DataTable()






        Try


            CONEXAO.Open()


            ADAPTADOR.Fill(DADOS)


            If DADOS.Rows.Count > 0 Then
                //Você tem o usuário registrado


            Else
                //Você não tem o usuário registrado
            End If


            CONEXAO.Close()


        Catch erro As Exception
            //Form5.Show()
            MsgBox(erro.Message)


        End Try


    End Sub

Veja se funciona agora

Ai amigo fiz desse jeito ai e funcionou sim perfeitamente :yes: olhe como ficou meu código:

 

 

 

 

  'PARTE DA CONEXÃO COM O BANCO DE DADOS

        Dim CONEXAO As New MySqlConnection
        Dim COMMAND As New MySqlCommand
        Dim ADAPTADOR As New MySqlDataAdapter
        Dim DADOS As New DataTable
        Dim SQL As String
        Dim VERIFICA As String

        CONEXAO = New MySqlConnection
        CONEXAO.ConnectionString = "SERVER=localhost;user id=root;password=;database=vaadministration"
        SQL = "SELECT * FROM users"
        VERIFICA = "SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'"

        Try
            CONEXAO.Open()
            Try

                COMMAND.Connection = CONEXAO
                COMMAND.CommandText = SQL
                ADAPTADOR.SelectCommand = COMMAND
                ADAPTADOR.Fill(DADOS)



                If DADOS.Rows.Count > 0 Then
                    Form2.Show()
                Else
                    Form3.Show()
                End If

            Catch ex As Exception

            End Try

        Catch erro As MySqlException
            Form5.Show()

        Finally
            CONEXAO.Dispose()
        End Try

 

Mas e agora como faço para verificar as textbox pra ver se são iguais a do Bando de Dados??? :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele já está verificando, quando você coloca essa instrução [inline]SELEcT * FROM users WHERE login = 'textbo1.text' AND senha = 'textbox2.text'[/inline] ele só vai pegar os resultados que são estritamente iguais as suas caixas de texto.

 

Remova algumas linhas do seu código Elnata, você pode definir os comandos dentro das próprias classes da maneira que lhe mostrei ali encima, uma quantidade maior de linhas de código só vai fazer seu programa pesar mais, ao invés disso:

 

 

 

 Dim CONEXAO As New MySqlConnection
        Dim COMMAND As New MySqlCommand
        Dim ADAPTADOR As New MySqlDataAdapter
        Dim DADOS As New DataTable
        Dim SQL As String
        Dim VERIFICA As String


        CONEXAO = New MySqlConnection
        CONEXAO.ConnectionString = "SERVER=localhost;user id=root;password=;database=vaadministration"
        SQL = "SELECT * FROM users"
        VERIFICA = "SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'"

Faça isso:

 

 

 

        Dim CONEXAO As MySqlConnection = New MySqlConnection("SERVER=localhost;user id=root;password=;database=vaadministration")
        Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'", CONEXAO)
        Dim ADAPTADOR As MySqlDataAdapter = New MySqlDataAdapter(COMMAND)
        Dim DADOS As New DataTable()

E se você fizer isto, essas funções abaixo vão tornar-se desnecessárias, pois você já configurou tudo, não há mais nada que você possa configurar para fazer rodar:

 

 


        COMMAND.Connection = CONEXAO
                COMMAND.CommandText = SQL
                ADAPTADOR.SelectCommand = COMMAND

Ou seja, você remove 4 linhas de código desnecessárias, já que tudo é configurado no instanciamento da variável, a String "VERIFICA" também é desnecessária, pois como eu disse, a verificação já é feita no SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é um erro na instrução de if que eu te passei ali encima. Temos o if que verifica se ele encontrou um registro, se ele encontrar este usuário existe, ai você abre o form 2, porém no else eu aconselho você a colocar uma mensagem de erro dizendo que o usuário ou senha estão incorretos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é um problema do próprio if, por exemplo, se você colocou desta maneira:

 


If DADOS.Rows.Count > 0 Then 
Form2.Show() 

Else 

MsgBox("Usuário ou senha incorretos") 

End If

Ele não deveria mostrar nada, se ele está mostrando a mensagem e o formulário 2 significa que você tem alguma instrução perdida no código que diz para o programa entrar com qualquer nome e senha, talvez alguma instrução antiga que você possa ter usado para debug e testes de outros formulários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Significa que seu dataset ou database não possui nenhum dado, para verificar melhor, defina o datasource do gridview para o DataTable:

 

 

Datagridview.DataSource = DADOS

 

No mesmo procedimento do botão, isso se o grid estiver no mesmo formulário, caso contrário você vai precisar fazer de "DADOS" um objeto global.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Significa que seu dataset ou database não possui nenhum dado, para verificar melhor, defina o datasource do gridview para o DataTable:

 

 

 

No mesmo procedimento do botão, isso se o grid estiver no mesmo formulário, caso contrário você vai precisar fazer de "DADOS" um objeto global.

 

É estranho pq eu adicionei 2 usuario no DB para testar mas no programa é como se esses usuarios não existissem!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento Load do formulário do gridview faça o seguinte:

 

 

 

Dim con as MySQLConnection = new MySqlConnection("Sua string")

Dim da as MySqlDataAdapter("SELECT * FROM tabelausuario", con)

Dim dt as new DataTable()

 

con.open()

 

da.fill(dt)

 

con.close()

 

DataGridView.DataSource = dt

DatagridView.Refresh

 

Caso ainda sim dê erro, o problema está ou na sua instrução SQL ou então na conexão utilizada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No evento Load do formulário do gridview faça o seguinte:

 

 

 

 

Caso ainda sim dê erro, o problema está ou na sua instrução SQL ou então na conexão utilizada.

 

É tentei de tdo mas tá tesno... :upset:

 

Eu consigo fazer todas as outras operações com MySql visualizar mas não consigo usar como login e senha! :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código completo aqui por favor.

Está ai o código completo!!

 

Imports System
Imports System.Data
Imports System.Windows.Forms
Imports MySql.Data.MySqlClient
Imports System.Net.Sockets

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'PARTE DA CONEXÃO COM O BANCO DE DADOS

        Dim CONEXAO As MySqlConnection = New MySqlConnection("SERVER=localhost;user id=root;password=;database=adm_prog")
        Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = 'TextBoxLogin.text' AND senha = 'TextBoxSenha.Text'", CONEXAO)
        Dim ADAPTADOR As MySqlDataAdapter = New MySqlDataAdapter(COMMAND)
        Dim DADOS As New DataTable()
        Dim DADOS2 As New DataTable()


        Try


            CONEXAO.Open()


            ADAPTADOR.Fill(DADOS)


            'DataGridView1.DataSource = DADOS
            DataGridView1.DataSource = DADOS

            If DADOS.Rows.Count > 0 Then
                'Você tem o usuário registrado
                Form2.Show()

            Else
                'Você não tem o usuário registrado
                MsgBox("INVALID LOGIN OR PASSWORD RETRY")
            End If


            CONEXAO.Close()


        Catch erro As Exception
            'Form5.Show()
            MsgBox(erro.Message)


        End Try

        If TextBoxLogin.Text = "Admin" And TextBoxSenha.Text = "admin" Then
            Form2.Show()
        End If

    End Sub

    Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
        Dim Bind As New BindingSource
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label4.Text = TimeString
    End Sub

    Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click

    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Form7.Show()
    End Sub

End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o erro, está na consulta SQL, faça assim:

 

 

 

Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = '" &TextBoxLogin.text &"' AND senha = '" &TextBoxSenha.Text &"'", CONEXAO)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Achei o erro, está na consulta SQL, faça assim:

 

 

 

Dim COMMAND As MySqlCommand = New MySqlCommand("SELECT * FROM users WHERE login = '" &TextBoxLogin.text &"' AND senha = '" &TextBoxSenha.Text &"'", CONEXAO)

AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEE..................... :yes: :yes: :yes: :yes:

 

PERFEITOO AMIGOOO AGORAA SIMMM cara você me ajudou e muitoo pra caramba agora posso continuar em frente com meu projeto!! Sei q ainda vou ter mtas duvidas mas vamos q vamos... e espero q esteja ai pra ajudar!!!!!:D:D:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fico feliz em ajudar :)

 

Só peço que, por favor, marque o post como resposta a fim de que o tópico se dê como resolvido, no momento nós moderadores estamos encarando alguns problemas com esse recurso o que nos deixa apenas a opção de pedir para os membros marcarem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fico feliz em ajudar :)

 

Só peço que, por favor, marque o post como resposta a fim de que o tópico se dê como resolvido, no momento nós moderadores estamos encarando alguns problemas com esse recurso o que nos deixa apenas a opção de pedir para os membros marcarem.

Ok, Obrigado! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.