PROBLEMA AO ABRIR CONEXAO

PREBELLI 01/10/2013 23:14:51
#429474
Poderiam me ajudar?

Estou tentando fazer um formulário de autenticação
já tenho um bd do acess com as colunas que preciso e tal (nome users colunas user e senha, arquivo db.accdb)
Testo a conexão no wizard e ok

quando vou dar debug. abre o formulario e no botao cancela ele feha, ate ai tudo certo
quando tento entrar com senha e usuario (certo ou erado, tanto faz) ele me reporta que o comando ExecuteReader precisa de conexão aberta.
Já tentei dar um Open e nada, podem ver o codigo?

Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.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\cpreb_000\Desktop\primeira\primeira\db.accdb[Ô]
comandos.CommandText = [Ô]SELECT * FROM users WHERE user = [ô]txtUser.Text[ô] and senha = [ô]txtPass.Text[ô]; [Ô]
comandos.Connection = conexao

conexao.Open()


consulta = comandos.ExecuteReader

If (consulta.HasRows) Then
main.Show()
Else
MsgBox([Ô]Usuário ou senha inválidos.[Ô])
End If

conexao.Close()
Me.Close()


End Sub
End Class
GUINHOVLM 02/10/2013 06:28:25
#429475
opa blza...

tente colocar o código que abre a conexão com o bando de dados antes da conection string

assim:

conexao.Open()
conexao.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\cpreb_000\Desktop\primeira\primeira\db.accdb[Ô]


espero ter ajudado..
OMAR2011 02/10/2013 08:12:47
#429480
Faça um teste.

If (consulta.HasRows) Then
[ô] main.Show()
Else
MsgBox([Ô]Usuário ou senha inválidos.[Ô])
End If
Deste jeito.
Acho onde acontece o erro é [txt-color=#e80000] [ô] main.Show()[/txt-color]
Testei seu código e não teve problema nenhum.
PREBELLI 02/10/2013 22:24:22
#429514
consegui. o problema era o Provider.
se ajudar alguem o codigo correto dele abaixo

conexao.ConnectionString = [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\db.accdb[Ô]

Meu problema agora e outro.
Ele abre a conexao, me da usuario e senha invalido e tal.
Só que se coloco um usuario e senha (ja definidos na tabela) ele não reconhece... Sempre retorna como usuario e senha invalido

Alguem pode verificar o que temos de errado

comandos.CommandText = [Ô]SELECT * FROM users WHERE user = [ô] txtUser.Text[ô] and senha = [ô] txtPass.Text[ô]; [Ô]



users é a tabela
user e a coluna usuario
senha a coluna senha
txtUser é a textbox de usuario
txtPass é a textbox da senha
TUNUSAT 02/10/2013 22:46:23
#429517
Prebelli,


Nesta página você encontra todo o esquema para se conectar ao Access:
http://www.connectionstrings.com/access/

Mas eu não entendi ... desculpe ... você quer buscar na Base de Dados usuário e Senha para se conectar na mesma Base de Dados?!?

Exemplo: Se você guardar seu usuário e senha criptografados no código (código em separado ... por uma DLL) e só passar o código criptografado quando for abrir a conexão. Você na hora descriptografa sem guardar em variável nenhuma e nem na base de dados.

Bom ... seu Command Text:

Citação:


comandos.CommandText = [Ô]SELECT * FROM users WHERE user = [ô] txtUser.Text[ô] and senha = [ô] txtPass.Text[ô]; [Ô]



Se você quer colocar uma variável dentro do texto entre aspas, meçhor usar neste formato:

[Ô]SELECT * FROM users WHERE user = [ô][Ô] & txtUser.Text & [Ô][ô] and senha = [ô][Ô] & txtPass.Text & [Ô][ô][Ô]

Aspas Simples ([ô]) + Aspas Duplas ([Ô]) & TEXTO & Aspas Duplas ([Ô]) + Aspas Simples ([ô])


Veja esta explicação:
http://msdn.microsoft.com/pt-br/library/system.data.sqlclient.sqlcommand.commandtext.aspx

Veja outros exemplos de criação de SELECT:
http://stackoverflow.com/questions/12954039/inserting-and-updating-values-in-ms-access-using-vb-net


[][ô]s,
Tunusat.
Faça seu login para responder