none
Erro Login RRS feed

  • Pergunta

  • Boa tarde.

    Estou tentando fazer um login, mas esse erro insiste em aparecer, alguém pode me dar uma luz?

    Erro: ExecuteScalar: Connection property has not been initialized.

    MEU CODIGO:

    try
            {
                string login = TextBoxLogin.Text;
                string senha = TextBoxSenha.Text;

                SqlConnection connection = new SqlConnection(
                WebConfigurationManager.ConnectionStrings["kaikoConnectionString"].ToString());

                connection.Open();

                SqlCommand command = new SqlCommand("SELECT COUNT(id_cliente) FROM clientes WHERE email_cliente = @email AND senha_cliente = @senha");

                command.Parameters.Add("@email", SqlDbType.VarChar).Value = login;
                command.Parameters.Add("@senha", SqlDbType.VarChar).Value = senha;

                int contador = (int)command.ExecuteScalar();

                if (contador > 0)
                {
                    Session["logado"] = true;
                    Session["erro_login"] = null;
                }
                else
                {
                    Session["erro_login"] = true;
                    TextBoxLogin.Text = "Login invalido";
                }
                connection.Close();
            }
            catch (Exception)
            {
                throw;
            }

    Obrigado.


    Obrigado.

    quarta-feira, 9 de janeiro de 2013 16:29

Respostas

  • Boa tarde não estou vendo a ligação do seu command com o abertura do banco de dados

     tente isso Ex :

     SqlCommand command = new SqlCommand();

    command.Connection = connection; // isso está faltando no seu código

    command.CommandType = CommandType.Text;

    command.CommandText = "SELECT COUNT(id_cliente) FROM clientes WHERE email_cliente = @email AND senha_cliente = @senha";

    Veja se irá funcionar.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    • Marcado como Resposta Carlos Messias quarta-feira, 9 de janeiro de 2013 18:18
    quarta-feira, 9 de janeiro de 2013 18:06

Todas as Respostas

  • Aposto que o erro só acontece quando o login e senha estão errados!

    Você faz um select por usuário com login e senha, caso o select não ache nada o executescalar não retorna um id, assim você tem um erro.

    Tente executar a query no sql com os parametros para ver o que retorna. Até


    Twitter: @MayogaX
    Blog: Dev Blog

    quarta-feira, 9 de janeiro de 2013 17:25
  • Boa tarde não estou vendo a ligação do seu command com o abertura do banco de dados

     tente isso Ex :

     SqlCommand command = new SqlCommand();

    command.Connection = connection; // isso está faltando no seu código

    command.CommandType = CommandType.Text;

    command.CommandText = "SELECT COUNT(id_cliente) FROM clientes WHERE email_cliente = @email AND senha_cliente = @senha";

    Veja se irá funcionar.


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    • Marcado como Resposta Carlos Messias quarta-feira, 9 de janeiro de 2013 18:18
    quarta-feira, 9 de janeiro de 2013 18:06
  • Obrigado aos dois pela resposta.

    Davi, realmente funcionou dessa forma. Muito obrigado.

    Me desculpe a ignorância pois estou começando a desenvolver agora. Sou iniciante e não consegui compreender o porque desse comando.

    Poderia me explicar qual vai ser a função dele nesse meio?

    Obrigado.
    Carlos Messias.


    Obrigado.

    quarta-feira, 9 de janeiro de 2013 18:21
  • Sim Explico:

    Acontence o Seguinte imagine que você é um funcionario que irá fazer várias operações em uma empresa . A empresa seria o seu SQLConnection.

    Para a empresa permitir que você entre nela ela deve está aberta :

    connection.Open();

    Você é o colocaborador : SQLCommand

    Como você vai executar tarefas dentro da empresa você primeiro deve entrar na empresa que já está aberte lhe esperando ou seja :

    command.Connection = connection

    Agora sim você vai trabalhar com suas ferramentas : command.CommandType = CommandType.Text

    (Aqui pode ser texto puro ou procedure : CommandType.StoredProcedure)

    Então planeja suas tarefas : command.CommandText = "comando SQL"

    Dái você precisa de ajuda para algumas finalidades de seu trabalho : command.Parameters.Add("parametro");

    enfim você executa suas tarefas : command.ExecuteScalar();

    e vê se deu certo .

    Depois você vai embora = command.Dispose() e command = null

    E por fim a empresa é fechamenta até outro dia(requisição) = connection.Close() - connectio.Dispose() - connection = null

    Resumindo " para você rodar comando SQL precisa está ligado com servidor no caso banco que você fará suas consultas ".

    Espero ter ajudado


    Davi Murilo Referência Principal : Jesus que ilumina minha mente.
    Referência Profissonal : http://www.tidm.com.br

    quarta-feira, 9 de janeiro de 2013 18:33
  • Muito Obrigado pela explicação!

    Obrigado.

    quarta-feira, 9 de janeiro de 2013 19:13