LOGIN COM ACESS

BRUNOPESCAROLLI 06/10/2011 20:19:03
#386147
Ola eu criei uma aplicação de Login com Banco de dados (.MDB) com o seguinte script


[th][/th]
Login com Banco de Dados
Public Class Form1
Dim chave1, chave2 As New OleDb.OleDbCommand()
Dim conexao As New OleDb.OleDbConnection()
Dim Read As OleDb.OleDbDataReader
Dim tentativas As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conexao.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Pescarolli!\SYSTEM\Desenvolvimento de Programas\SEVER.mdb[Ô]
chave1.CommandType = CommandType.Text
chave1.CommandText = [Ô]Select * From User Where Usuario=? and Senha=?[Ô]

chave2.Connection = conexao
chave2.CommandType = CommandType.Text
chave2.CommandText = [Ô]Select * From User Where Usuario=? and Senha=?[Ô]


End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
chave1.Parameters.Add([Ô]Usuario[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters.Add([Ô]Senha[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters([Ô]Usuario[Ô]).Value = TextBox1.Text
chave1.Parameters([Ô]Senha[Ô]).Value = TextBox2.Text

[ô]Abre conexao com banco de dados
conexao.Open()

[ô] Le a informação do banco de dados
Read = chave1.ExecuteReader
verificaLogin()

[ô] fecha a conexao com o banco de dados
conexao.Close()

End Sub
Private Sub verificaLogin()
If tentativas >= 3 Then
MessageBox.Show([Ô]Número de tentativas foi excedido ![Ô], [Ô]Login[Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
[ô]Fecha aplicação
End
Else
TextBox1.Clear()
TextBox2.Clear()
MessageBox.Show([Ô]Chave ou senha inválida ![Ô], [Ô]Login[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

TextBox1.Focus()

End Sub
End Class

Ocorre um erro no trecho [Ô] Read = chave1.ExecuteReader[Ô] que diz [Ô]ExecuteReader: propriedade Connection não foi inicializada[Ô]

o que sera que eu fiz de errado?
ALTAIR148 06/10/2011 20:51:02
#386148
Resposta escolhida
Boa noite,

Amigo tenta assim:


Public Class Form1
Dim chave1, chave2 As New OleDb.OleDbCommand()
Dim conexao As New OleDb.OleDbConnection()
Dim Read As OleDb.OleDbDataReader
Dim tentativas As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conexao.ConnectionString = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Pescarolli!\SYSTEM\Desenvolvimento de Programas\SEVER.mdb[Ô]
chave1.Connection = conexao
chave1.CommandType = CommandType.Text
chave1.CommandText = [Ô]Select * From User Where Usuario=? and Senha=?[Ô]

chave2.Connection = conexao
chave2.CommandType = CommandType.Text
chave2.CommandText = [Ô]Select * From User Where Usuario=? and Senha=?[Ô]


End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
chave1.Parameters.Add([Ô]Usuario[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters.Add([Ô]Senha[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters([Ô]Usuario[Ô]).Value = TextBox1.Text
chave1.Parameters([Ô]Senha[Ô]).Value = TextBox2.Text

[ô]Abre conexao com banco de dados
conexao.Open()

[ô] Le a informação do banco de dados
Read = chave1.ExecuteReader
verificaLogin()

[ô] fecha a conexao com o banco de dados
conexao.Close()

End Sub
Private Sub verificaLogin()
If tentativas >= 3 Then
MessageBox.Show([Ô]Número de tentativas foi excedido ![Ô], [Ô]Login[Ô], MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
[ô]Fecha aplicação
End
Else
TextBox1.Clear()
TextBox2.Clear()
MessageBox.Show([Ô]Chave ou senha inválida ![Ô], [Ô]Login[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

TextBox1.Focus()

End Sub
End Class


Até mais.
BRUNOPESCAROLLI 06/10/2011 20:54:18
#386149
deu erro [Ô]Syntax error in FROM clause.[Ô]
ALTAIR148 06/10/2011 20:59:42
#386150
O erro esta no FROM.
BRUNOPESCAROLLI 06/10/2011 21:10:08
#386152
Olha eu coloquei [Ô]SELECT * FROM [User] Where Usuario=? a Senha=?[Ô]

ta certo?

desculpa sou meio iniciante na area de intregar Acess ao VB.net

aparece [Ô]Objeto COM que foi separado do seu RCW subjacente não pode ser usado.[Ô]
ALTAIR148 06/10/2011 21:13:33
#386153
Amigo, deixa me ver uma coisa, vc quer é fazer um sistema de login, é isso mesmo?
Você esta colocando o select mesmo antes de passar os parâmetros, você não pode dar um select sem parâmetros, ou seja, ele não pode ficar no LOAD do form.

Eu vou fazer um exemplo bem básico mesmo aqui ai você tira uma base em cima dele.
BRUNOPESCAROLLI 06/10/2011 21:14:26
#386154
é isso mesmo sistema de login
ALTAIR148 06/10/2011 21:31:35
#386155
Amigo em anexo tem um exemplo de uma olhada nele. E com ele vc tira uma base do que precisa fazer.
ALTAIR148 06/10/2011 22:02:12
#386157
Outro erro amigo é que vc esta usando o nome da tabela [Ô]USER[Ô] No Access existe uma coisa chamada PALAVRAS RESERVADAS, ou seja, tem palavras que são interpretadas como comandos. Veja a lista de palavras reservadas abaixo, e veja que nela existe a palavra USER. Se vc usar usar ela na sql vai dar erro.
Lista Palavras Reservadas


Até mais.

RODRIGOFERRO 07/10/2011 08:28:15
#386162
Uma coisa que percebi aqui logo de cara...

chave1.Parameters.Add([Ô]Usuario[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters.Add([Ô]Senha[Ô], Data.OleDb.OleDbType.Variant)
chave1.Parameters([Ô]Usuario[Ô]).Value = TextBox1.Text
chave1.Parameters([Ô]Senha[Ô]).Value = TextBox2.Text

vejam aqui o que esta ocorrendo, esta sendo adicionado os parametros antes de serem preencidos, nao testei pra ver se isso daria erro, mas em tese deveria dar sim !
anyway.. o normal é Preencher e depois passar o parametro !

Ah e porque todos os parametro do tipo variant ? tem que fazer um tratamento de erro disso antes e passar parametro normal.. String
BRUNOPESCAROLLI 07/10/2011 22:27:05
#386291
Ola eu testei o sistema de login , e estar funcionando perfeitamente , agora entendo como qual é o momento certo de onde se coloca os parametros na parte certa

obrigado !
Tópico encerrado , respostas não são mais permitidas