Tela de login - Não funciona
04/01/2012
0
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
Posts
04/01/2012
Joel Rodrigues
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.
04/01/2012
Luiz Junior
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)
05/01/2012
Joel Rodrigues
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.
05/01/2012
Luiz Junior
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?
06/01/2012
Walter Morais
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.
06/01/2012
Luiz Junior
E qual ferramenta vc utiliza para desenvolver?
09/01/2012
Joel Rodrigues
10/01/2012
Ricardo Mauro
tem que dar o read antes de resgatar os valores do datareader.
abcs.
Clique aqui para fazer login e interagir na Comunidade :)