Inquiridor
AJUDA! TELA DE CADASTRO E TELA DE LOGIN [VB.NET]

Pergunta
-
Olá gente, eu fiz um formulário de cadastro e login na plataforma VB.NET e assim que o cadastro é concluído abre o formulário de login, mas não consigo logar com o usuário que cadastrei, fica como se não estivesse cadastrado, ou seja, acho que não atualiza os dados pro login, como faço isso??
ME AJUDEEM POR FAVOR ...
Todas as Respostas
-
Espere um pouco que eu já acesso seu computador para ver o que vc fez.... :)
Laura.. fica um pouco dificil te ajudar sem saber o que vc esta fazendo.
Ajude-nos à te ajudar.
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Editado William John Adam TrindadeModerator segunda-feira, 26 de novembro de 2012 19:54
-
A programação da tela de LOGIN é essa
Private Sub Login2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
con.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source= TTI.accdb"
da.SelectCommand = New OleDbCommand("Select * from Tb_Usuario")
da.SelectCommand.Connection = con
da.Fill(ds)
da.UpdateCommand = New OleDbCommand("Update Tb_Usuario SET Nome = @Nome, Usuario = @Usuario, Senha = @Senha, Data = @Data, Sexo = @Sexo, Profissao = @Profissao, Endereco = @Endereco")
da.UpdateCommand.Connection = con
da.UpdateCommand.Parameters.Add("@Nome", OleDbType.VarChar, 50, "Nome")
da.UpdateCommand.Parameters.Add("@Usuario", OleDbType.VarChar, 50, "Usuario")
da.UpdateCommand.Parameters.Add("@Senha", OleDbType.VarChar, 50, "Senha")
da.UpdateCommand.Parameters.Add("@Data", OleDbType.VarChar, 50, "Data")
da.UpdateCommand.Parameters.Add("@Sexo", OleDbType.VarChar, 50, "Sexo")
da.UpdateCommand.Parameters.Add("@Profissao", OleDbType.VarChar, 50, "Profissao")
da.UpdateCommand.Parameters.Add("@Endereco", OleDbType.VarChar, 50, "Endereco")
End Sub
_____________________________________________________________________________
Private Sub Entrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Entrar.Click
cmd = con.CreateCommand
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * FROM Tb_Usuario WHERE Usuario=@Usuario and Senha=@senha"
If TxtNome.Text.Trim = "" Then
MessageBox.Show("Informe o seu nome de usuário !", "Chave", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
TxtNome.Focus()
Exit Sub
End If
If TxtSenha.Text.Trim = "" Then
MessageBox.Show("Informe a sua senha !", "Senha", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
TxtSenha.Focus()
Exit Sub
End If
cmd.Parameters.Add("@Usuario", OleDbType.VarChar)
cmd.Parameters("@Usuario").Value = TxtNome.Text
cmd.Parameters.Add("@Senha", OleDbType.VarChar)
cmd.Parameters("@Senha").Value = TxtSenha.Text
con.Open()
Read = cmd.ExecuteReader
verificaLogin()
con.Close()
End Sub______________________________________________________________________________
Private Sub verificaLogin()
With Read
If .Read Then
MessageBox.Show("Acesso permitido ! Bem Vindo """ & TxtNome.Text & """", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Hide()
Principal.Show()
Else
tentativas += 1
If tentativas >= 1000 Then
MessageBox.Show("Número de tentativas foi excedido. Programa fechado!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End
Else
TxtNome.Clear()
TxtSenha.Clear()
MessageBox.Show("Usuário ou senha inválida!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End If
TxtNome.Focus()
End With
End Sub______________________________________________________________________________
A programação da tela de CADASTRO é essa
Private Sub Cadastro_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
da.UpdateCommand = New OleDbCommand("Update Tb_Usuario SET Nome = @nome, Senha = @senha, Data = @data, Sexo = @sexo, Profissao = @profissao, Endereco = @endereco WHERE Usuario = @usuario")
da.UpdateCommand.Connection = banco
da.UpdateCommand.Parameters.Add("@nome", OleDbType.VarChar, 50, "Nome")
da.UpdateCommand.Parameters.Add("@usuario", OleDbType.VarChar, 50, "Usuario")
da.UpdateCommand.Parameters.Add("@senha", OleDbType.VarChar, 50, "Senha")
da.UpdateCommand.Parameters.Add("@data", OleDbType.VarChar, 50, "Data")
da.UpdateCommand.Parameters.Add("@sexo", OleDbType.VarChar, 50, "Sexo")
da.UpdateCommand.Parameters.Add("@profissao", OleDbType.VarChar, 50, "Profissao")
da.UpdateCommand.Parameters.Add("@endereco", OleDbType.VarChar, 50, "Endereco")
End Sub
______________________________________________________________________________
Private Sub BtnMarcar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMarcar.Click
Dim queryInsert As String
banco = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\TTI\TTI\TTI.accdb")
Dim sConnection As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\TTI\TTI\TTI.accdb"
banco.Open()
'efetua a gravação do compromisso
queryInsert = "INSERT INTO Tb_Usuario([Nome], [Usuario], [Senha], [Data], [Sexo], [Profissao], [Endereco]) values (@Nome, @Usuario, @Senha, @Data, @Sexo, @Profissao, @Endereco)"
Dim dr As DataRow
Dim sexo As String
Dim commandInsert As New OleDbCommand(queryInsert, banco)
If Not validaCampo() Then
Exit Sub
Else
If RdbFeminino.Checked Then
sexo = "Feminino"
Else
sexo = "Masculino"
End If
commandInsert.Parameters.Add("@Nome", OleDbType.VarChar, 50, "Nome").Value = TxtNome.Text
commandInsert.Parameters.Add("@Usuario", OleDbType.VarChar, 50, "Usuario").Value = TxtUsuario.Text
commandInsert.Parameters.Add("@Senha", OleDbType.VarChar, 50, "Senha").Value = TxtSenha.Text
commandInsert.Parameters.Add("@Data", OleDbType.VarChar, 50, "Data").Value = TxtDataAniver.Text
commandInsert.Parameters.Add("@Sexo", OleDbType.VarChar, 50, "Sexo").Value = sexo
commandInsert.Parameters.Add("@Profissao", OleDbType.VarChar, 50, "Profissao").Value = TxtProfissao.Text
commandInsert.Parameters.Add("@Endereco", OleDbType.VarChar, 50, "Endereco").Value = TxtEndereco.Text
commandInsert.ExecuteNonQuery()
MsgBox("Cadastro efetuado com sucesso!")
banco.Close()
Login2.Show()
Me.Hide()
End If
End Sub______________________________________________________________________________
Preciso fazer com que o usuário se cadastre e logo em seguida abre a página do login e ele loga, mas ele dá como usuário não cadastrado.
Espero que dê pra entender. -
E vc ja verificou o banco para ver se o dado esta realmte lá?
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée -
Acabei de verificar e realmente ele esta sim.
- Editado LauraBrochin segunda-feira, 26 de novembro de 2012 20:39
-
Tente usar um DataTable ao invez de um Read, simplesmente fazendo:
con.Open() Read = cmd.ExecuteReader DataTable myTable = new DataTable(); myTable.Load(Read); MsgBox(myTable.Rows.Count)//verifica quantas linhas foram trazidas na consulta
verificaLogin(myTable)
depois altere seu verifica login, assim:
Private Sub verificaLogin(dt as DataTable) If dt.Rows.Count>0 Then MessageBox.Show("Acesso permitido ! Bem Vindo """ & TxtNome.Text & """", "Login", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.Hide() Principal.Show() Else tentativas += 1 If tentativas >= 1000 Then MessageBox.Show("Número de tentativas foi excedido. Programa fechado!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Else TxtNome.Clear() TxtSenha.Clear() MessageBox.Show("Usuário ou senha inválida!", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End If TxtNome.Focus() End Sub
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Editado William John Adam TrindadeModerator segunda-feira, 26 de novembro de 2012 20:51
-
-
O que retornou aqui:
MsgBox(myTable.Rows.Count)//verifica quantas linhas foram trazidas na consulta
Zero?
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée -
Nao creio que seja isso, mas tente.
Veja seu commandtext esta assim:
cmd.CommandText = "SELECT * FROM Tb_Usuario WHERE Usuario=@Usuario and Senha=@senha"
e seu parametro esta assim:
cmd.Parameters.Add("@Senha", OleDbType.VarChar)
cmd.Parameters("@Senha").Value = TxtSenha.TextNote que em um lugar vc usa @senha e no outro @Senha.. (um com s minisculo e outro com S maiusculo)
Tente colocar os dois iguais, ou seja:
cmd.CommandText = "SELECT * FROM Tb_Usuario WHERE Usuario=@Usuario and Senha=@Senha"
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée- Editado William John Adam TrindadeModerator segunda-feira, 26 de novembro de 2012 21:18
-
-
Ok.. me responda isso primeiro:
que retornou aqui:
MsgBox(myTable.Rows.Count)//verifica quantas linhas foram trazidas na consulta
Zero?
att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
Sogi informatique ltée