• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

silvy

Login do utilizador

5 mensagens neste tópico

Olá pessoal!

Tou a fazer um programa em vb.net para gestão do material de uma papelaria escolar. Antes de poder trabalhar com o programa o utilizador tem que inserir um username e uma password, mas o problema que tenho é que se se colocar o username certo mas a password errada ou nenhuma, ele entra, se se colocar só a inicial do username correcto e sem password ele entra na mesma.

O código que tou a usar é este:

Dim ConnectionString1 as new string("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= Manager_BD.mdb")
Dim Connection1 As new OleDbConnection(ConnectionString1)
Dim dsutilizador As new DataSet
Dim sql1 As String
Dim dautilizador As OleDbDataAdapter

Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
        dautilizador = New OleDbDataAdapter(sql1, Connection1)
        dautilizador.SelectCommand = New System.Data.OleDb.OleDbCommand(sql1, Connection1)

        sql1 = "Select username, password from Utilizadores where username = '" & TextBox1.Text & "';"

        dautilizador.SelectCommand.CommandText = sql1

        connection1.Open()
        dautilizador.Fill(dsutilizador, "Utilizadores")
        connection1.Close()
        
        If dsutilizador.Tables("Utilizadores").Rows.Count = 0 Then
                          MessageBox.Show("Não é possível iniciar sessão porque o nome de utilizador ou palavra-passe que introduziu estão incorrectas.")
        	        
        	             TextBox1.Clear
              	TextBox2.Clear
        Else
        	 If dsutilizador.Tables("Utilizadores").Rows.Item(0).item(1) = convert.ToInt32(textBox2.Text) Then
        	me.Hide
			my.Forms.menu.Show
 Else
        	MessageBox.Show("Não é possível iniciar sessão porque o nome de utilizador ou palavra-passe que introduziu estão incorrectas.")
        	        
        	          TextBox1.Clear
	TextBox2.Clear
  End If
        End If
End Sub

Alguem me pode ajudar por favor?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sql1 = "Select username, password from Utilizadores where username = '" & TextBox1.Text & "';"

so estas a por um criterio..devia ser qq coisa do genero.......

where utilizador = X and pwd = y

De qualquer modo..nao me parece que usar o datatable seja a melhor alternativa de consulta..eu usario o datareader com o exceute scalar e o count.

Por outro lado, se pretendes fazer uma validação de user e pwd... vais ter que fazer isso por fazes....

primeiro... verificar se o user existe....e so depois verificar se user e pwd correspondem... no fundo...

Duas consultas à BD

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Creio que o teu problema está aqui:

sql1 = "Select username, password from Utilizadores where username = '" & TextBox1.Text & "';"

Estás a fazer a verificação apenas como o username.. tambem deves incluir a password..

sql1 = "Select username, password from Utilizadores where username = '" & TextBox1.Text.Replace("'","''") & "' and password = '" & TextBox1.Text.Replace("'","''") & "'"

Também deves tem em conta as "quotes" do SQL.. pois caso não ponhas e o utilizador tentar colocar no user ou pass.. o char '.. vai originar erro..

TextBox1.Text.Replace("'","''")

Compr.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal muito obrigado pela ajuda, ja consegui resolver o problema, e por acaso o erro nao estava no codigo que eu mostrei , mas sim numa outra parte do formulario.

Obrigada na mesma. :D

P.S.: o codigo que tem na pagina do macoratti é muito interessante e para quem precisar pode ser util. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora