Tela de login - Não funciona

04/01/2012

0

Estou tentando fazer uma tela de login onde se o usuário for de um determinado tipo ele será redirecionado a uma página, mas quando coloco o login e senha mesmo sendo errado ele redireciona, parece que ele não está fazendo a consulta do banco.

abaixo segue o código:
<script language=VB runat=server>
        Dim Conecta As OleDbConnection
        Dim Data As OleDbDataReader
        Dim Comando As OleDbCommand
        Dim Tipo As String
        
        Sub Logar(ByVal Source As Object, ByVal e As EventArgs)
            Declaração para encontrar banco de dados em access
            Dim BD As String = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & Server.MapPath(play.mdb)
            
            Seleciona os dados do usuário.
            Dim qrySQL As String = Select Codigo, Nome, Login, Senha, Tipo  from acesso Where Login =  & edtLogin.Text &  and Senha =  & edtSenha.Text & 
            
            Dim Conecta As New OleDbConnection(BD)
            Dim Comando As New OleDbCommand(qrySQL, Conecta)
            
            Conecta.Open()
            Data = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
            
            Response.Redirect(admin.aspx)
            
            Tipo = Data.GetValue(5)
            
            If Not Data.Read() Then
                lblMensagem.Text = Login ou Senha Incorretos.
                Data.Close()
                Conecta.Close()
            Else
                If Tipo = 1 Then
                    Response.Redirect(admin.aspx)
                End If
            End If
                        
        End Sub
    </script>    


Onde pode ser o erro?

Fico no aguardo da ajuda de vcs e obrigado!

Desculpa pelo código, mas estou iniciando!
Luiz Junior

Luiz Junior

Responder

Posts

04/01/2012

Joel Rodrigues

Boa tarde.
Repare no seguinte trecho do seu código:
Conecta.Open()
Data = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)

Response.Redirect(admin.aspx)



Você está redirecionando antes de verificar os dados. Remova terceira linha.
Responder

04/01/2012

Luiz Junior

Putz, dormi no ponto nessa em? Obrigado pela ajuda!

Agora eu fiz, mas ele da o seguinte erro:

Não existem dados para a linha ou coluna.
Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da Exceção: System.InvalidOperationException: Não existem dados para a linha ou coluna.

Erro de Origem:

Linha 26: Data = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
Linha 27:
Linha 28: Tipo = Data.GetValue(6)
Linha 29:
Linha 30: If Not Data.Read() Then


Arquivo de Origem: C:\inetpub\wwwroot\pacesso\index.aspx Linha: 28

Eu tenho essa variável Tipo que um Integer, como faço ela receber o valor de um campo da consulta que fiz para identificar o usuário?

Fiz assim, mas não sei se está certo:
Dim Tipo As Integer
.
.
.
Dim qrySQL As String = Select Codigo, Nome, Login, Senha, Tipo  from acesso Where Login =  & edtLogin.Text &  and Senha =  & edtSenha.Text & 
.
.
.
 Dim Conecta As New OleDbConnection(BD)
            Dim Comando As New OleDbCommand(qrySQL, Conecta)
            
            Conecta.Open()
            Data = Comando.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
            
            Tipo = Data.GetValue(4)
Responder

05/01/2012

Joel Rodrigues

Certifique-se de que a consulta está retornando registros e, ao invés de GetValue, use GetInt32.
Ah, considere usar parâmetros na sua consulta e não montar a string dessa forma, não analisei bem, mas acho que sua tela de login está sujeita a SQL Injection.
Responder

05/01/2012

Luiz Junior

Legal, vou dar uma olhada a respeito do SQL Injection já vi que é uma falha!!!!

Você usa qual ferramenta para desenvolver site, Micro. Visual Web?

Você conhece algum livro de ASP.Net, mas que mostre programação mais avançada e nada de Alo Mundo?
Responder

06/01/2012

Walter Morais

Bom dia,

Eu recomendo sempre o livro Como programar Asp.net da editora novatec.
e um livro muito bom, não sei se já conhece.
vale a pena ter ele em casa ou na empresa.
Responder

06/01/2012

Luiz Junior

Vou dar uma olhada, valeu pela dica!
E qual ferramenta vc utiliza para desenvolver?
Responder

09/01/2012

Joel Rodrigues

Bom, eu sempre tenho o Visual Studio 2010 (mais recente) COMPLETO instalado. Ou seja, uso ele para todos os tipos de aplicação. Pesquise sobre o Expression Web e veja se lhe serve.
Responder

10/01/2012

Ricardo Mauro

Mano, voce tem que fazer chamar o método .Read() do SqlDataReader, senão ele não le o que esta no resultset.

tem que dar o read antes de resgatar os valores do datareader.

abcs.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar