PROBLEMAS COM ROTINA DE LOGIN.
Bom pessoal, dessa vez vim aqui por conta de um código que peguei com um amigo que está usando o mysql, ou seja, há algumas diferenças na codificação, entretanto, tentei me virar sozinho procurando outros códigos que me auxiliassem no meu problema, mas a maioria que encontrei é com banco de daddos access... E o que eu uso é o SQL SERVER ...O que ocorre? Meu form de login está montado e tal, entretanto, a rotina de login não funciona... apenas informa login iválido, mesmo tendo digitado tudo certinho... Abaixo o código:
Public Function Login()
Dim dt As New DataTable
[ô]Dim da As SqlClient.SqlDataAdapter
[ô]da.Fill(dt)
strSql = [Ô]SELECT * FROM Empresas Where Login_Usuario =[Ô] & txtlogin.Text & [Ô] and Senha_Usuario=[Ô] & txtsenha.Text
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
For Each DataRow In dt.Rows
If txtLogin.Text = DataRow.item(1) And txtSenha.Text = DataRow(2) Then
cnnSql.Close()
Return True
End If
Next
cnnSql.Close()
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Function
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If txtLogin.TextLength < 1 Or txtSenha.TextLength < 1 Then
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar[Ô])
End If
End Sub
Grato desde já.
Public Function Login()
Dim dt As New DataTable
[ô]Dim da As SqlClient.SqlDataAdapter
[ô]da.Fill(dt)
strSql = [Ô]SELECT * FROM Empresas Where Login_Usuario =[Ô] & txtlogin.Text & [Ô] and Senha_Usuario=[Ô] & txtsenha.Text
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
For Each DataRow In dt.Rows
If txtLogin.Text = DataRow.item(1) And txtSenha.Text = DataRow(2) Then
cnnSql.Close()
Return True
End If
Next
cnnSql.Close()
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End Function
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If txtLogin.TextLength < 1 Or txtSenha.TextLength < 1 Then
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar[Ô])
End If
End Sub
Grato desde já.
Então vamos mostrar erros,porque não conectou direito.
Public Function Login()
Dim dt As New DataTable
Dim da As New SqlDataAdapter
Dim cmdLogin As New SqlCommand
Dim cnnSql As New SqlConnection([Ô]Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Bras2012.mdf;Integrated Security=True[Ô]) [ô][txt-color=#e80000] Aqui coloca a sua conexão Sqlserver[/txt-color]
Dim strSql As String = [Ô]SELECT * FROM Empresas Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] [txt-color=#e80000]Aspas estava faltando[/txt-color].
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] [txt-color=#e80000]Sem isto não carrega nada do banco[/txt-color]
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô][txt-color=#e80000] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo[/txt-color]
Return True
End If
Next
cnnSql.Close()
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error) [ô][txt-color=#e80000] Depois de tudo certo sempre vai aparecer está mensagem,terá que retirá-la[/txt-color].
End Function
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If txtLogin.TextLength < 1 Or txtSenha.TextLength < 1 Then [ô][txt-color=#e80000] Isto não é satisfatório para comparação.Se usar a tecla de espaço vai aceitar e seu campo vai está vazio[/txt-color].
[ô] Use
If txtlogin.Text.Trim = [Ô][Ô] Then [txt-color=#007100][ô]O resto completa deste jeito[/txt-color]
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar[Ô])
End If
End Sub
Agora acredito que vai dar certo.
Valeu.
Public Function Login()
Dim dt As New DataTable
Dim da As New SqlDataAdapter
Dim cmdLogin As New SqlCommand
Dim cnnSql As New SqlConnection([Ô]Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Bras2012.mdf;Integrated Security=True[Ô]) [ô][txt-color=#e80000] Aqui coloca a sua conexão Sqlserver[/txt-color]
Dim strSql As String = [Ô]SELECT * FROM Empresas Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] [txt-color=#e80000]Aspas estava faltando[/txt-color].
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] [txt-color=#e80000]Sem isto não carrega nada do banco[/txt-color]
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô][txt-color=#e80000] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo[/txt-color]
Return True
End If
Next
cnnSql.Close()
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error) [ô][txt-color=#e80000] Depois de tudo certo sempre vai aparecer está mensagem,terá que retirá-la[/txt-color].
End Function
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
If txtLogin.TextLength < 1 Or txtSenha.TextLength < 1 Then [ô][txt-color=#e80000] Isto não é satisfatório para comparação.Se usar a tecla de espaço vai aceitar e seu campo vai está vazio[/txt-color].
[ô] Use
If txtlogin.Text.Trim = [Ô][Ô] Then [txt-color=#007100][ô]O resto completa deste jeito[/txt-color]
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar[Ô])
End If
End Sub
Agora acredito que vai dar certo.
Valeu.
Bom cara, primeiramente obrigado pela resposta... Eu corrigi conforme a sugestão, mas ele continua me dando login Invalido =( segue o código com as correções. Detalhe que estou com o banco aberto do lado, tentando logar com usuários cadastrados e mesmo assim o erro persiste... Pelo jeito agora as connections funfaram, só deve estar havendo alguma validação errada.. HEHE preciso de mais um help, grato desde já.
Public Function Login()
Dim dt As New DataTable
Dim da As New SqlClient.SqlDataAdapter
Dim cmdLogin As New SqlClient.SqlCommand
Dim cnnSql As New SqlClient.SqlConnection([Ô]Server=(local)\SQLEXPRESS;[Ô] & _
[Ô]User Id=sa; Password=; Database=db_COMFORT; Connection TimeOut=60;[Ô]) [ô] Aqui coloca a sua conexão Sqlserver
Dim strSql As String = [Ô]SELECT * FROM Usuarios Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] Aspas estava faltando.
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] Sem isto não carrega nada do banco
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo
Return True
End If
Next
cnnSql.Close()
[ô]MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error) [ô] Depois de tudo certo sempre vai aparecer está mensagem,terá que retirá-la.
End Function
Private Sub btnincluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnincluir.Click
[ô]-- If txtlogin.TextLength < 1 Or txtsenha.TextLength < 1 Then <-- [ô] Isto não é satisfatório para comparação.
[ô] Se usar a tecla de espaço vai aceitar e seu campo vai está vazio.
[ô] Use
If txtlogin.Text.Trim = [Ô][Ô] Then [ô]O resto completa deste jeito
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar [Ô] & Err.Description, [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
Public Function Login()
Dim dt As New DataTable
Dim da As New SqlClient.SqlDataAdapter
Dim cmdLogin As New SqlClient.SqlCommand
Dim cnnSql As New SqlClient.SqlConnection([Ô]Server=(local)\SQLEXPRESS;[Ô] & _
[Ô]User Id=sa; Password=; Database=db_COMFORT; Connection TimeOut=60;[Ô]) [ô] Aqui coloca a sua conexão Sqlserver
Dim strSql As String = [Ô]SELECT * FROM Usuarios Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] Aspas estava faltando.
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] Sem isto não carrega nada do banco
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo
Return True
End If
Next
cnnSql.Close()
[ô]MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error) [ô] Depois de tudo certo sempre vai aparecer está mensagem,terá que retirá-la.
End Function
Private Sub btnincluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnincluir.Click
[ô]-- If txtlogin.TextLength < 1 Or txtsenha.TextLength < 1 Then <-- [ô] Isto não é satisfatório para comparação.
[ô] Se usar a tecla de espaço vai aceitar e seu campo vai está vazio.
[ô] Use
If txtlogin.Text.Trim = [Ô][Ô] Then [ô]O resto completa deste jeito
MessageBox.Show([Ô]Campo(s) em branco[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar [Ô] & Err.Description, [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
Por esse código não tem com aparecer [Ô]Login Invalido[Ô].
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Terá que retirá-la.
MessageBox.Show([Ô]Login Inválido[Ô], [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Terá que retirá-la.
Tenta assim:
Public Function Login()
[txt-color=#e80000]Dim Acesso As Bool = False[/txt-color]
Dim dt As New DataTable
Dim da As New SqlClient.SqlDataAdapter
Dim cmdLogin As New SqlClient.SqlCommand
Dim cnnSql As New SqlClient.SqlConnection([Ô]Server=(local)\SQLEXPRESS;[Ô] & _
[Ô]User Id=sa; Password=; Database=db_COMFORT; Connection TimeOut=60;[Ô]) [ô] Aqui coloca a sua conexão Sqlserver
Dim strSql As String = [Ô]SELECT * FROM Usuarios Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] Aspas estava faltando.
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] Sem isto não carrega nada do banco
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo
[txt-color=#e80000]Acesso = True[/txt-color]
End If
Next
cnnSql.Close()
[txt-color=#e80000]return Acesso[/txt-color]
End Function
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar [Ô] & Err.Description, [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Public Function Login()
[txt-color=#e80000]Dim Acesso As Bool = False[/txt-color]
Dim dt As New DataTable
Dim da As New SqlClient.SqlDataAdapter
Dim cmdLogin As New SqlClient.SqlCommand
Dim cnnSql As New SqlClient.SqlConnection([Ô]Server=(local)\SQLEXPRESS;[Ô] & _
[Ô]User Id=sa; Password=; Database=db_COMFORT; Connection TimeOut=60;[Ô]) [ô] Aqui coloca a sua conexão Sqlserver
Dim strSql As String = [Ô]SELECT * FROM Usuarios Where Login_Usuario =[ô][Ô] & txtlogin.Text & [Ô][ô] and Senha_Usuario=[ô][Ô] & txtsenha.Text & [Ô][ô][Ô] [ô] Aspas estava faltando.
cmdLogin.CommandText = strSql
cmdLogin.Connection = cnnSql
da.SelectCommand = cmdLogin
da.Fill(dt) [ô] Sem isto não carrega nada do banco
For Each DataRow In dt.Rows
If txtlogin.Text = DataRow.item(1).ToString.Trim And txtsenha.Text = DataRow(2).ToString.Trim Then [ô] Coloquei deste jeito no meu e teste deu certo,o seu não deu certo
[txt-color=#e80000]Acesso = True[/txt-color]
End If
Next
cnnSql.Close()
[txt-color=#e80000]return Acesso[/txt-color]
End Function
If Login() = True Then
MessageBox.Show([Ô]Logado com Sucesso[Ô])
mdiPrincipal.Show()
Else
MessageBox.Show([Ô]Erro ao Logar [Ô] & Err.Description, [Ô]Erro[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Consegui galera, muito obrigado!
Tópico encerrado , respostas não são mais permitidas