Ir para conteúdo

Arquivado

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

eduardohaag

Carregar dados do banco de dados em variavel

Recommended Posts

Olá pessoal, tenho um bom conhecimento de visual basic dentro do excel. Iniciei um novo projeto e estou aprendendo a trabalhar com o visual studio, o que acabou me forçando a utilizar banco de dados (access).

 

Bom nunca trabalhei com banco de dados no visual basic, fato esse que está me gerando grandes dificuldades. Minha duvida de hoje talvez seja simples pra vocês porém para mim está sendo muito dificil.

 

Basicamente é o seguinte:

 

tenho uma formulario principal que quando é iniciado apresenta uma area para login no sistema, e quando realizado o login, é exibido o menu do programa.

 

até ai tudo bem, pois seguindo alguns tutoriais que encontrei e consegui o sistema de login funcionar.

 

Porém no meu banco de dados tenho as seguintes informações "usuario, senha, nome e Nivel de acesso"

no codigo que criei ele verifica se o usuario e senha estão certos e passa a exibir o menu principal

 

o que preciso agora é que ele exiba ainda os dados do campo nome em uma label e também o nivel de acesso em outra label.

Porém não faço a menor ideia de como capturar essas informações e exibi-las nas labels.

 

Meu codigo é o seguinte

Private Sub cmd_entrar_Click(sender As Object, e As EventArgs) Handles cmd_entrar.Click
        Dim conexao As New OleDbConnection
        Dim comandos As New OleDbCommand
        Dim consulta As OleDbDataReader
               
        conexao.ConnectionString = "Provider=Microsoft.jet.OLEDB.4.0; DATA SOURCE=C:\Users\Rafael\Documents\Loja\Programa\VB.net\Same 1.0 - Alpha\same_database1.mdb;"
        conexao.Open()
        comandos.CommandText = "SELECT * from usuarios where usuario='" + tb_usuario.Text + "' And senha='" + tb_senha.Text + "'"
        comandos.Connection = conexao
        consulta = comandos.ExecuteReader

        If consulta.HasRows Then
            quadro_login.Visible = False
            MainMenuStrip.Visible = True
        Else
            MsgBox("Usuário e/ou senha invalidos.")
        End If
        conexao.Close()
    End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está procurando um DataReader, veja estes exemplos:

 

http://www.macoratti.net/vbn_lst2.htm

http://www.macoratti.net/09/05/c_adn_4.htm

 

verifiquei os exemplos mas estou tendo dificuldade.

preciso pegar o valor da 4ª coluna (index 3) do datareader que é onde fica o nome do usuariop, e passar esse dado para uma variavel. pelo que percebi devo usar o comando .item (n) do datareader. porém quando executo o codigo ele retorna o seguinte erro:

 

An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll

Additional information: A conversão da cadeia de caracteres 'Eduardo Felipe Haag' no tipo 'Integer' não é válida.
sei que isso tem haver com o tipo de dados mas não estou entendendo o motivo do erro.
Segue meu código:
obs: criei o codigo assim para testar, ja que estou aprendendo, mas depois que conseguir fazer os dados irem para as variaveis vou mudar a forma que serão aplicados
 Private Sub cmd_entrar_Click(sender As Object, e As EventArgs) Handles cmd_entrar.Click
        Dim conexao As New OleDbConnection
        Dim comandos As New OleDbCommand
        Dim consulta As OleDbDataReader
        Dim nome As VariantType
        Dim nivel As VariantType
        

        conexao.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\same_database1.mdb"
        conexao.Open()
        comandos.CommandText = "SELECT * from usuarios where usuario='" + tb_usuario.Text + "' and senha='" + tb_senha.Text + "'"
        comandos.Connection = conexao
        consulta = comandos.ExecuteReader

        If (consulta.HasRows) Then
            quadro_login.Visible = False
            MainMenuStrip.Visible = True
            While consulta.Read()
                nome = (consulta.Item(3))
                MsgBox(" o nome é " & nome)
            End While
        Else
            MsgBox("Usuário e/ou Senha invalidos. Verifique!")
        End If
        conexao.Close()
    End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Você utilizou um tipo variante na variável: VariantType

 

Tente:

Dim nome As String

E depois

nome = consulta.Item(3).ToString();

 

Resolvido.

Muito Obrigado pela ajuda.

Tive esse problema por que sempre trabalhei com vba dentro do excel, e o tipo variant sempre me serviu pra quando eu ficava com duvida do tipo de dados a usar.

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.