none
criei um botão de pesquisar mas toda fez que tento fazer a pesquisa ele retona o seguinte erro "e necessario declarar a variavel escalar @pesquisa_sselect"não consigo indentificar o erro.. RRS feed

  • Pergunta

  • {
                strSql = "select*from [dbo].[SEGUNDA] where NOME_S=@pesquisar_s" +
                "select*from [dbo].[TERÇA] where NOME_T=@pesquisar_t" +
                "select*from [dbo].[QUARTA] where NOME_Q=@pesquisar_q" +
                "select*from [dbo].[QUINTA] where NOME_QI=@pesquisar_qi" +
                "select*from [dbo].[SEXTA] where NOME_SEX=@pesquisar_sex" +
                "select*from [dbo].[TOTAL] where NOME_G=@pesquisar_g";

                sqlCon = new SqlConnection(strCon);

                SqlCommand cmd = new SqlCommand(strSql, sqlCon);

                cmd.Parameters.Add("@pesquisar_s", SqlDbType.VarChar).Value = txt_pesquisar_S.Text;
                cmd.Parameters.Add("@pesquisar_t", SqlDbType.VarChar).Value = txt_pesquisar_T.Text;
                cmd.Parameters.Add("@pesquisar_q", SqlDbType.VarChar).Value = txt_pesquisar_Q.Text;
                cmd.Parameters.Add("@pesquisar_qi", SqlDbType.VarChar).Value = txt_pesquisar_QI.Text;
                cmd.Parameters.Add("@pesquisar_sex", SqlDbType.VarChar).Value = txt_pesquisar_SEX.Text;
                cmd.Parameters.Add("@pesquisar_g", SqlDbType.VarChar).Value = txt_pesquisar_G.Text;

     
                
                try
                {

                    if (txt_pesquisar_S.Text ==string.Empty)
                        if(txt_pesquisar_G.Text==string.Empty)
                            if(txt_pesquisar_Q.Text==string.Empty)
                                if(txt_pesquisar_QI.Text==string.Empty)
                                    if(txt_pesquisar_SEX.Text==string.Empty)
                                        if(txt_pesquisar_T.Text==string.Empty)

                    {
                        MessageBox.Show("VOCÊ NÃO DIGITOU UM NOME!");
                    }


                    sqlCon.Open();

                    SqlDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows==false)
                    {
                        throw new Exception("ESTE NOME NÃO ESTA NOS REGISTROS!");
                    }

                    dr.Read();

                    txt_atividade.Text = Convert.ToString(dr["ATIVIDADE"]);
                    txt_bairro.Text = Convert.ToString(dr["BAIRRO"]);
                    txt_categoria.Text = Convert.ToString(dr["CATEGORIA"]);
    sexta-feira, 5 de janeiro de 2018 11:08

Respostas

  • Jean,

    Você quer unir o resultado de todas os SELECTs? Caso sim, você deveria fazer assim:

    strSql = "select * from [dbo].[SEGUNDA] where NOME_S=@pesquisar_s UNION " +
                "select * from [dbo].[TERÇA] where NOME_T=@pesquisar_t UNION " +
                "select * from [dbo].[QUARTA] where NOME_Q=@pesquisar_q UNION " +
                "select * from [dbo].[QUINTA] where NOME_QI=@pesquisar_qi UNION " +
                "select * from [dbo].[SEXTA] where NOME_SEX=@pesquisar_sex UNION " +
                "select * from [dbo].[TOTAL] where NOME_G=@pesquisar_g";

    E não esqueça de incluir espaço em branco após o nome de um parâmetro para só então dar sequência ao comando SQL.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 5 de janeiro de 2018 11:25

Todas as Respostas

  • Jean,

    Você quer unir o resultado de todas os SELECTs? Caso sim, você deveria fazer assim:

    strSql = "select * from [dbo].[SEGUNDA] where NOME_S=@pesquisar_s UNION " +
                "select * from [dbo].[TERÇA] where NOME_T=@pesquisar_t UNION " +
                "select * from [dbo].[QUARTA] where NOME_Q=@pesquisar_q UNION " +
                "select * from [dbo].[QUINTA] where NOME_QI=@pesquisar_qi UNION " +
                "select * from [dbo].[SEXTA] where NOME_SEX=@pesquisar_sex UNION " +
                "select * from [dbo].[TOTAL] where NOME_G=@pesquisar_g";

    E não esqueça de incluir espaço em branco após o nome de um parâmetro para só então dar sequência ao comando SQL.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 5 de janeiro de 2018 11:25
  • Jean,

    A mensagem informa que a variável @pesquisa_sselect deve ser declarada.

    De que forma você esta executando este bloco de código? A sua aplicação esta fazendo a chamada ou você esta enviando isso para uma Stored Procedure.

    De alguma maneira esta variável tem que estar dentro do mesmo bloco de código que você deseja fazer a pesquisa.


    Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sábado, 6 de janeiro de 2018 21:04
  • valeu ajudou muito...
    domingo, 7 de janeiro de 2018 13:12
  • VALEU AJUDOU BASTANTE E CONSEGUI ACHAR O ERRO...VALEU
    domingo, 7 de janeiro de 2018 13:22
  • Deleted
    domingo, 7 de janeiro de 2018 13:40