Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>
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
vou verificar os links, caso tiver duvida retorno aqui.
>
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 SubVocê utilizou um tipo variante na variável: VariantType
Tente:
Dim nome As String
E depois
nome = consulta.Item(3).ToString();
>
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.
No .NET é um pouco obrigatório definir explicitamente os tipos de dados que você quer usar, usar Var ou VariantType não são uma boa ideia
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