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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar