none
Filtragem com multipos DropDownList RRS feed

  • Pergunta

  • Prezados,

     Estou tentando fazer um filtro com 05 dropdownlists de pesquisa em Asp.Net C#. Mas gostaria de filtrar as informações na tabela com base em um, dois, três, quatro ou as cinco opções e depois clicar no botão Pesquisa. Como faço isso? Estou usando o codigo abaixo:

    protected void btnSearch_Click(object sender, EventArgs e)
            {
                string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                SqlConnection con = new SqlConnection(CS);
                string SQL = "SELECT lid_cd_lideranca id,lid_nome nome,lid_cd_partido partido,lid_cd_base_aliada aliado,carg_cargo cargo,lid_cd_orgao lotacao,lid_cd_cidade_atuacao atuacao FROM redat_municipio RIGHT JOIN (lid_cargo RIGHT JOIN lid_lideranca ON lid_cargo.carg_cd_cargo = lid_lideranca.lid_cargo) ON redat_municipio.id_municipios = lid_lideranca.lid_cd_cidade_atuacao WHERE lid_lideranca.lid_cargo = @cargo AND lid_lideranca.lid_cd_cidade_atuacao = @municipio";
                SqlCommand cmd = new SqlCommand(SQL, con);
                cmd.Parameters.AddWithValue("@municipio", ddlmunicipio.SelectedValue);
                cmd.Parameters.AddWithValue("@cargo", ddlcargo.SelectedValue);
                SqlDataAdapter Adpt = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                Adpt.Fill(dt);
                gwDados.DataSource = dt;
                gwDados.DataBind();
                
            }

    domingo, 25 de maio de 2014 15:19

Respostas

  • Agradeco pela resposta mas nao funciona. Nao sei se me expressei mal, mas a filtragem pode ser baseada em ate cinco parametros. No entanto, posso escolher apenas um parametro, ou dois, ou tres, ou quatro ou cinco.

    Olá,

    monte a sql dinamicamente. Ex:

    sql = "select *from tabela where ";
      //Se tiver parametro1 então
         sql = sql + "parametro1 = @parametro1";
         cmd.Parameters.AddWithValue("@parametro1", parametro1);
    
    ...
    ...

    Essa é a ideia, tente implementa-la. Se tiver dificuldade volte que te ajudo com o código, mas, é algo bem simples de se fazer.

    Dê um retorno.

       


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.





    domingo, 25 de maio de 2014 22:03
  • Olá,

    o que está acontecendo?

    Não testei seu código, mas, só de olhar, o erro que vi foi de concatenação. Você precisa dar um espaço antes de fechar sua primeira linha de sql, após o WHERE. Se não fizer isso, quando houver a concatenação das strings elas ficarão juntas e na execução desse trecho você receberá um erro de sql. Sua string está ficando +/- assim: ...WHERElid_lideranca.lid_cd_cidade_atuacao = @municipio


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.






    segunda-feira, 26 de maio de 2014 02:27
  • Ola tudo bom. Tem como vc ajudar com o codigo? Pode enviar um exemplo?

    Abs

    Supondo que os DropDownList tenham um valor Default que não seja usado como busca, por exemplo "Selecione a cidade", veja o trecho o abaixo:

    protected void Button1_Click(object sender, EventArgs e) { string sql = "SELECT *FROM TABLE WHERE "; if (ddlFuncao.SelectedIndex > 0) { sql = sql + "FUNCAO='" + ddlFuncao.Text + "' "; } if (ddlCidade.SelectedIndex > 0) {

    if(ddlFuncao.SelectedIndex > 0)

    { sql = sql + "AND CIDADE='" + ddlCidade.Text + "' ";

    }

    else

    {

    sql = sql + "CIDADE='" + ddlCidade.Text + "' ";

    } } }


    O exemplo acima está usando concatenação de string para atribuir os parâmetros. Essa era minha sugestão, porém, usando sql atributos. Usei a concatenação só para te mostrar minha ideia. Espero que ajude.


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.


    segunda-feira, 26 de maio de 2014 13:57
  • Tudo bom Wennder,

     Muito obrigado. Resolveu praticamento 90% da consulta. Mas algumas não estão funcionando porque a concatenação da string SQL não esta ficando correta. Segue o código que fiz baseado no seu exemplo. 

    As consultas abaixo não estão funcionando:

    Por exemplo, quais superintendentes trabalham na Secretaria da Fazenda? ERRO: Incorrect syntax near 'lid_lideranca'. (02 parâmetros: cargo e órgão)
    Quais vereadores, do município de Goiânia são do PMDB? ERRO:  Incorrect syntax near 'lid_lideranca'.(03
    parâmetros: cargo, partido e município)

    Nota: Aproveitando a ocasião, como faço um refresh dos dropdownlists após clicar no botão Pesquisar?

    Um grande abraço e obrigado pela ajuda

    protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                SqlConnection con = new SqlConnection(CS);
    
                string sql = "SELECT lid_cd_lideranca id,lid_nome nome,part_sigla partido,bas_base aliado,carg_cargo cargo,orgao lotacao,municipios atuacao FROM redat_orgao RIGHT JOIN (lid_partido RIGHT JOIN (lid_base RIGHT JOIN (redat_municipio1 RIGHT JOIN (lid_cargo RIGHT JOIN lid_lideranca ON lid_cargo.carg_cd_cargo = lid_lideranca.lid_cargo) ON redat_municipio1.id_municipios = lid_lideranca.lid_cd_cidade_atuacao) ON lid_base.bas_cd_base = lid_lideranca.lid_cd_base_aliada) ON lid_partido.part_cd_partido = lid_lideranca.lid_cd_partido) ON redat_orgao.codorgao = lid_lideranca.lid_cd_orgao WHERE ";
    
                SqlCommand cmd = new SqlCommand(sql, con);
    
                if (ddlcargo.SelectedIndex > 0)
                {
                    sql = sql + "lid_lideranca.lid_cargo='" + ddlcargo.SelectedValue + "' ";
                    
                }
    
                if (ddlbasealiada.SelectedIndex > 0)
                {
                    if (ddlcargo.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlmunicipio.SelectedIndex > 0)
                {
                    if (ddlbasealiada.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlpartido.SelectedIndex > 0)
                {
                    if (ddlmunicipio.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                }
                
                if (ddlorgao.SelectedIndex > 0)
                {
                    if (ddlpartido.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                        
                    }
                }
    
                con.Open();
                cmd.CommandText = sql;
                SqlDataReader dr = cmd.ExecuteReader();
                gwDados.DataSource = dr;
                gwDados.DataBind();

     

       

    Olá,

    esses erros:

    Por exemplo, quais superintendentes trabalham na Secretaria da Fazenda? ERRO: Incorrect syntax near 'lid_lideranca'. (02 parâmetros: cargo e órgão)
    Quais vereadores, do município de Goiânia são do PMDB? ERRO:  Incorrect syntax near 'lid_lideranca'.(03
    parâmetros: cargo, partido e município)

    São erros de sql simples, você consegue resolve-los facilmente usando o debug. Após clicar em pesquisar, para voltar o drop para o item default use:

    ddlTeste.SelectedIndex = 0;


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.




    • Marcado como Resposta markevis segunda-feira, 2 de junho de 2014 21:59
    quarta-feira, 28 de maio de 2014 23:31

Todas as Respostas

  • Na cláusula Where coloque todos os possíveis filtros com o operador OR.

    Exemplo:

    SELECT
       COLUNA1, COLUNA2
    FROM 
        MINHATABELA
    INNER JOIN 
        ... meus joins
    WHERE 
       COLUNAX = @PARAM1 OR COLUNAY = @PARAM2
    

    domingo, 25 de maio de 2014 17:59
  • Agradeco pela resposta mas nao funciona. Nao sei se me expressei mal, mas a filtragem pode ser baseada em ate cinco parametros. No entanto, posso escolher apenas um parametro, ou dois, ou tres, ou quatro ou cinco.
    domingo, 25 de maio de 2014 19:17
  • Agradeco pela resposta mas nao funciona. Nao sei se me expressei mal, mas a filtragem pode ser baseada em ate cinco parametros. No entanto, posso escolher apenas um parametro, ou dois, ou tres, ou quatro ou cinco.

    Olá,

    monte a sql dinamicamente. Ex:

    sql = "select *from tabela where ";
      //Se tiver parametro1 então
         sql = sql + "parametro1 = @parametro1";
         cmd.Parameters.AddWithValue("@parametro1", parametro1);
    
    ...
    ...

    Essa é a ideia, tente implementa-la. Se tiver dificuldade volte que te ajudo com o código, mas, é algo bem simples de se fazer.

    Dê um retorno.

       


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.





    domingo, 25 de maio de 2014 22:03
  • Tudo Wennder. Obrigado por responder. Se puder me ajudar com o codigo agradeco demais. Achei um codigo em um forum mas nao esta funcionando quando clico no botao pesquisar:

    DropDownList d = sender as DropDownList;
                if (d == null) return;
                
                string sql = "SELECT lid_cd_lideranca id,lid_nome nome,part_sigla partido,bas_base aliado,carg_cargo cargo,orgao lotacao,municipios atuacao FROM  redat_orgao INNER JOIN (lid_partido INNER JOIN (lid_base RIGHT JOIN (redat_municipio INNER JOIN (lid_cargo INNER JOIN lid_lideranca ON lid_cargo.carg_cd_cargo = lid_lideranca.lid_cargo) ON redat_municipio.id_municipios = lid_lideranca.lid_cd_cidade_atuacao) ON lid_base.bas_cd_base = lid_lideranca.lid_cd_base_aliada) ON lid_partido.part_cd_partido = lid_lideranca.lid_cd_partido) ON redat_orgao.codorgao = lid_lideranca.lid_cd_orgao WHERE";
                SqlCommand cmd = new SqlCommand(sql);
                switch (d.ID )
                {
                case "ddlcargo":
                    
                    sql = sql + "lid_lideranca.lid_cargo = @cargo";
                    cmd.Parameters.AddWithValue("@cargo", ddlcargo.SelectedValue);
                    break;
                case "ddlpartido":
                    
                    sql = sql + "lid_lideranca.lid_cd_partido = @partido";
                    cmd.Parameters.AddWithValue("@partido", ddlpartido.SelectedValue);
                    break;
                case "ddlmunicipio":
                    
                    sql = sql + "lid_lideranca.lid_cd_cidade_atuacao = @municipio";
                    cmd.Parameters.AddWithValue("@municipio", ddlmunicipio.SelectedValue);
                    break;
                case "ddlbasealiada":
                    sql = sql + "lid_lideranca.lid_cd_base_aliada = @base";
                    cmd.Parameters.AddWithValue("@base", ddlbasealiada.SelectedValue);
                    break;
                case "ddlorgao":
                    sql = sql + "lid_lideranca.lid_cd_orgao = @orgao";
                    cmd.Parameters.AddWithValue("@orgao", ddlorgao.SelectedValue);
                    break;
                }
    
                SqlDataAdapter Adpt = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                Adpt.Fill(dt);
                gwDados.DataSource = dt;
                gwDados.DataBind();

    Preciso de algo parecido com isso. A filtragem aparece na Gridview.


    segunda-feira, 26 de maio de 2014 00:05
  • Olá,

    o que está acontecendo?

    Não testei seu código, mas, só de olhar, o erro que vi foi de concatenação. Você precisa dar um espaço antes de fechar sua primeira linha de sql, após o WHERE. Se não fizer isso, quando houver a concatenação das strings elas ficarão juntas e na execução desse trecho você receberá um erro de sql. Sua string está ficando +/- assim: ...WHERElid_lideranca.lid_cd_cidade_atuacao = @municipio


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.






    segunda-feira, 26 de maio de 2014 02:27
  • Ola tudo bom. Tem como vc ajudar com o codigo? Pode enviar um exemplo?

    Abs

    segunda-feira, 26 de maio de 2014 12:38
  • Ola tudo bom. Tem como vc ajudar com o codigo? Pode enviar um exemplo?

    Abs

    Supondo que os DropDownList tenham um valor Default que não seja usado como busca, por exemplo "Selecione a cidade", veja o trecho o abaixo:

    protected void Button1_Click(object sender, EventArgs e) { string sql = "SELECT *FROM TABLE WHERE "; if (ddlFuncao.SelectedIndex > 0) { sql = sql + "FUNCAO='" + ddlFuncao.Text + "' "; } if (ddlCidade.SelectedIndex > 0) {

    if(ddlFuncao.SelectedIndex > 0)

    { sql = sql + "AND CIDADE='" + ddlCidade.Text + "' ";

    }

    else

    {

    sql = sql + "CIDADE='" + ddlCidade.Text + "' ";

    } } }


    O exemplo acima está usando concatenação de string para atribuir os parâmetros. Essa era minha sugestão, porém, usando sql atributos. Usei a concatenação só para te mostrar minha ideia. Espero que ajude.


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.


    segunda-feira, 26 de maio de 2014 13:57
  • Tudo bom Wennder,

     Muito obrigado. Resolveu praticamento 90% da consulta. Mas algumas não estão funcionando porque a concatenação da string SQL não esta ficando correta. Segue o código que fiz baseado no seu exemplo. 

    As consultas abaixo não estão funcionando:

    Por exemplo, quais superintendentes trabalham na Secretaria da Fazenda? ERRO: Incorrect syntax near 'lid_lideranca'. (02 parâmetros: cargo e órgão)
    Quais vereadores, do município de Goiânia são do PMDB? ERRO:  Incorrect syntax near 'lid_lideranca'.(03
    parâmetros: cargo, partido e município)

    Nota: Aproveitando a ocasião, como faço um refresh dos dropdownlists após clicar no botão Pesquisar?

    Um grande abraço e obrigado pela ajuda

    protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                SqlConnection con = new SqlConnection(CS);
    
                string sql = "SELECT lid_cd_lideranca id,lid_nome nome,part_sigla partido,bas_base aliado,carg_cargo cargo,orgao lotacao,municipios atuacao FROM redat_orgao RIGHT JOIN (lid_partido RIGHT JOIN (lid_base RIGHT JOIN (redat_municipio1 RIGHT JOIN (lid_cargo RIGHT JOIN lid_lideranca ON lid_cargo.carg_cd_cargo = lid_lideranca.lid_cargo) ON redat_municipio1.id_municipios = lid_lideranca.lid_cd_cidade_atuacao) ON lid_base.bas_cd_base = lid_lideranca.lid_cd_base_aliada) ON lid_partido.part_cd_partido = lid_lideranca.lid_cd_partido) ON redat_orgao.codorgao = lid_lideranca.lid_cd_orgao WHERE ";
    
                SqlCommand cmd = new SqlCommand(sql, con);
    
                if (ddlcargo.SelectedIndex > 0)
                {
                    sql = sql + "lid_lideranca.lid_cargo='" + ddlcargo.SelectedValue + "' ";
                    
                }
    
                if (ddlbasealiada.SelectedIndex > 0)
                {
                    if (ddlcargo.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlmunicipio.SelectedIndex > 0)
                {
                    if (ddlbasealiada.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlpartido.SelectedIndex > 0)
                {
                    if (ddlmunicipio.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                }
                
                if (ddlorgao.SelectedIndex > 0)
                {
                    if (ddlpartido.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                        
                    }
                }
    
                con.Open();
                cmd.CommandText = sql;
                SqlDataReader dr = cmd.ExecuteReader();
                gwDados.DataSource = dr;
                gwDados.DataBind();

     

       

    quarta-feira, 28 de maio de 2014 22:50
  • Tudo bom Wennder,

     Muito obrigado. Resolveu praticamento 90% da consulta. Mas algumas não estão funcionando porque a concatenação da string SQL não esta ficando correta. Segue o código que fiz baseado no seu exemplo. 

    As consultas abaixo não estão funcionando:

    Por exemplo, quais superintendentes trabalham na Secretaria da Fazenda? ERRO: Incorrect syntax near 'lid_lideranca'. (02 parâmetros: cargo e órgão)
    Quais vereadores, do município de Goiânia são do PMDB? ERRO:  Incorrect syntax near 'lid_lideranca'.(03
    parâmetros: cargo, partido e município)

    Nota: Aproveitando a ocasião, como faço um refresh dos dropdownlists após clicar no botão Pesquisar?

    Um grande abraço e obrigado pela ajuda

    protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
                SqlConnection con = new SqlConnection(CS);
    
                string sql = "SELECT lid_cd_lideranca id,lid_nome nome,part_sigla partido,bas_base aliado,carg_cargo cargo,orgao lotacao,municipios atuacao FROM redat_orgao RIGHT JOIN (lid_partido RIGHT JOIN (lid_base RIGHT JOIN (redat_municipio1 RIGHT JOIN (lid_cargo RIGHT JOIN lid_lideranca ON lid_cargo.carg_cd_cargo = lid_lideranca.lid_cargo) ON redat_municipio1.id_municipios = lid_lideranca.lid_cd_cidade_atuacao) ON lid_base.bas_cd_base = lid_lideranca.lid_cd_base_aliada) ON lid_partido.part_cd_partido = lid_lideranca.lid_cd_partido) ON redat_orgao.codorgao = lid_lideranca.lid_cd_orgao WHERE ";
    
                SqlCommand cmd = new SqlCommand(sql, con);
    
                if (ddlcargo.SelectedIndex > 0)
                {
                    sql = sql + "lid_lideranca.lid_cargo='" + ddlcargo.SelectedValue + "' ";
                    
                }
    
                if (ddlbasealiada.SelectedIndex > 0)
                {
                    if (ddlcargo.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_base_aliada='" + ddlbasealiada.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlmunicipio.SelectedIndex > 0)
                {
                    if (ddlbasealiada.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_cidade_atuacao='" + ddlmunicipio.SelectedValue + "' ";
    
                    }
                }
    
                if (ddlpartido.SelectedIndex > 0)
                {
                    if (ddlmunicipio.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_partido='" + ddlpartido.SelectedValue + "' ";
    
                    }
                }
                
                if (ddlorgao.SelectedIndex > 0)
                {
                    if (ddlpartido.SelectedIndex > 0)
                    {
                        sql = sql + "AND lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                                    }
                    else
                    {
                        sql = sql + "lid_lideranca.lid_cd_orgao='" + ddlorgao.SelectedValue + "' ";
                        
                    }
                }
    
                con.Open();
                cmd.CommandText = sql;
                SqlDataReader dr = cmd.ExecuteReader();
                gwDados.DataSource = dr;
                gwDados.DataBind();

     

       

    Olá,

    esses erros:

    Por exemplo, quais superintendentes trabalham na Secretaria da Fazenda? ERRO: Incorrect syntax near 'lid_lideranca'. (02 parâmetros: cargo e órgão)
    Quais vereadores, do município de Goiânia são do PMDB? ERRO:  Incorrect syntax near 'lid_lideranca'.(03
    parâmetros: cargo, partido e município)

    São erros de sql simples, você consegue resolve-los facilmente usando o debug. Após clicar em pesquisar, para voltar o drop para o item default use:

    ddlTeste.SelectedIndex = 0;


    Wennder Santos

    Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.




    • Marcado como Resposta markevis segunda-feira, 2 de junho de 2014 21:59
    quarta-feira, 28 de maio de 2014 23:31
  • Vlw. Muito Obrigado Wennder!!!!
    segunda-feira, 2 de junho de 2014 22:00
  • Blz Wennder,

    Estou tentando implementar um mecanismo de busca passando parametros em uma stored procedure. A procedure esta funcionando perfeitamente. So nao estou conseguindo implementar em Asp.net C# o codigo para exibir o resultado da pesquisa em um gridview. Segue o codigo em Asp.Net C# e da StoredProcedure:

    CREATE PROCEDURE [dbo].[spConsultaAliados]
    @nome nvarchar(200) = NULL,
    @cargo nvarchar(500) = NULL,
    @partido nvarchar(50) = NULL,
    @municipio nvarchar(57) = NULL,
    @base nvarchar(50) = NULL,
    @orgao nvarchar(255) = NULL
    
    
    
    AS
    BEGIN
    
    SET NOCOUNT ON
        
    
    	SELECT 
    	       dbo.aliados_municipio.lid_cd_lideranca, dbo.aliados_municipio.bas_base, dbo.aliados_municipio.part_sigla, dbo.aliados_municipio.orgao, dbo.aliados_municipio.lid_nome, 
               dbo.aliados_municipio.lid_email, dbo.aliados_municipio.lid_facebook, dbo.aliados_municipio.lid_twitter, dbo.aliados_municipio.carg_cargo, dbo.aliados_municipio.lid_cargo2, 
               dbo.aliados_municipio.municipios, dbo.aliados_municipio.lid_fone_celular, dbo.aliados_municipio.lid_fone_comercial, dbo.aliados_municipio.lid_endereco_comercial
    
    	FROM 
    		   dbo.aliados_municipio
    	WHERE
    		   ((dbo.aliados_municipio.lid_nome LIKE '%' + @nome + '%') OR (@nome IS NULL)) AND 
    		   ((dbo.aliados_municipio.carg_cargo = @cargo) OR (@cargo IS NULL)) AND
    		   ((dbo.aliados_municipio.part_sigla = @partido) OR (@partido IS NULL)) AND
    		   ((dbo.aliados_municipio.municipios = @municipio) OR (@municipio IS NULL)) AND
    		   ((dbo.aliados_municipio.bas_base = @base) OR (@base IS NULL)) AND
    		   ((dbo.aliados_municipio.orgao = @orgao) OR (@orgao IS NULL))
    SELECT @@rowcount
    SET NOCOUNT OFF

    Codigo Asp.net C#:

    protected void btnSearch_Click(object sender, EventArgs e)
            {
    
                string conexao = @"Data Source=markevis-VAIO\SQLEXPRESS;Initial Catalog=SeplanGeral;User ID=sa;Password=123";
                using (var cnn = new SqlConnection(conexao))
                {
                    using (var cmd = new SqlCommand("spConsultaAliados", cnn))
                    {
                        cmd.CommandType = System.Data.CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@nome", tbPesqNome.Text.ToString());
                        cmd.Parameters.AddWithValue("@cargo", Convert.ToInt32(ddlcargo.SelectedValue));
                        cmd.Parameters.AddWithValue("@partido", Convert.ToInt32(ddlpartido.SelectedValue));
                        cmd.Parameters.AddWithValue("@municipio", Convert.ToInt32(ddlmunicipio.SelectedValue));
                        cmd.Parameters.AddWithValue("@base", Convert.ToInt32(ddlbasealiada.SelectedValue));
                        cmd.Parameters.AddWithValue("@orgao", Convert.ToInt32(ddlorgao.SelectedValue));
                        cnn.Open();
                        SqlDataReader dr = cmd.ExecuteReader();
                        DataTable dt = new DataTable();
                        dt.Load(dr);
    
                        gwDados.DataSource = dt;
                        gwDados.DataBind();
                    }
                }

    quarta-feira, 2 de julho de 2014 21:29