VALIDACAO DO LOGIN

USUARIO.EXCLUIDOS 23/08/2006 11:17:50
#166750
Oi pessoal,

Preciso da vossa ajuda.

Estou a fazer um programa em VB2005 com ligação a uma Database que está feita em SqlServer2005.



No Form faço esta ligação

   
conexao = New SqlConnection("Data Source= (Local) ;Database= Empresa;Trusted_Connection=True;")




Depois tenho uma Table X onde guardo o Username e Password. Têm pelo meno 3 Users e Passwords diferentes



Quando o programa arranca temos que meter numa TextBox o User e noutra TextBox a Password.

A minha dúvida é como faço para o programa ir ler à  Table X os campos e validar a informação que pomos nessas TextBoxes.

Se o programa encontrar algum User que seja igual aquele que pomos nas TextBoxes, ele entra para aplicação, senão dá uma Messagem de Erro...



Algume me pode ajudar???
RAMSES 23/08/2006 11:23:57
#166753
nessa conexao tu esta se conectando ao banco.
para saber se o usuario se pode loguear na aplicacao pode fazer assim
select * from [user] where [user] = 'textbox usuario' and [password] = 'textbox da senha'
USUARIO.EXCLUIDOS 23/08/2006 12:31:45
#166773
Depois de fazer isso tenho que criar um SqlDataReader, não é??

Então fiz assim:

 
Dim LerDados as SqlDataReder
cmd_entra.CommandText = ("Select * From LoginEntrada Where Username=" & Me.TextBox1.Text & ";And PassWord=" & Me.TextBox2.Text & ";")
LerDados = cmd_entra.ExecuteReader
If LerDados.Read = 1 Then
MessageBox.Show("Entrou")
Else
MessageBox.Show("NÓ¡O Entrou")
End If



Mas o DataReader não está a ler, eu acho que é nesta linha
   
If LerDados.Read = 1 Then


Em Vb2005 qual é o sinal de comparação??

Por exemplo em C++ eu tinha feito
 
If LerDados.Read == 1 Then


Mas em Vb2005 dá erro
RAMSES 23/08/2006 12:35:46
#166776
ta errado o commandtext o certo eh
cmd_entra.CommandText = ("Select * From LoginEntrada Where Username=" & Me.TextBox1.Text & " And PassWord=" & Me.TextBox2.Text)

sem o ;
comparacao no vb eh =
USUARIO.EXCLUIDOS 23/08/2006 12:41:15
#166778

Fiz como vc disse mas depois de ler a query ele não vai para a condição

   

If LerDados.Read = 1 Then
MessageBox.Show("Entrou")
Else
MessageBox.Show("NÓ¡O Entrou")
End If



Não faz nada....
Não percebo [S61]
RAMSES 23/08/2006 12:44:42
#166779
Resposta escolhida
pq o read le o datareader.
para verse tem linha usa o HasRows,onde retorna True se tem linha e false senao tem linha
MORDOR 23/08/2006 13:06:14
#166782
O método Read retorna um valor True/False. Para verificar valores Boolean no VB faça assim:

If reader.Read() = True Then
End If

If reader.Read() = False Then
End If

If reader.Read() Then
End If

If Not reader.Read() Then
End If


Outra coisa, procure trabalhar com parà¢metros nas consultas ao invés de ficar concatenando valores da string SQL, pois o tratamento é feito automaticamente.

Dim username As String = "Admin"
Dim password As String = "pass"
Dim query As String = "SELECT user_id FROM users WHERE user_login = @Login AND user_password = @Password"
Dim command As New SqlCommand(query)

command.Parameters.AddWithValue("@Login", username)
command.Parameters.AddWithValue("@Password", password)
USUARIO.EXCLUIDOS 23/08/2006 13:11:15
#166783
Já resolvi, o erro estava na Query:

A query correcta é:



("Select * From LoginEntrada Where Username= '" & Me.TextBox1.Text & "';And PassWord='" & Me.TextBox2.Text & "';")



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