none
Select usando Parâmetro e carregando DataGridView RRS feed

  • Pergunta


  • Fala galera, blz ?

    Estou começando em c# e to com uma duvida, que embora acredito ser coisa atoa, ta me dando um trabalhão.

    Realizo uma busca de pessoas e mostro no DataGridView e quando uso  where P.nome_pes like '%" + txt_nome.Text + "%' a busca funciona corretamente, porém quando faço com Parâmetro ela não funciona ( like '%@busca%' ; cmd.Parameters.AddWithValue("@busca", txt_nome.Text) ). Só pra constar estou utilizando MySql com C#.

    Abaixo está o codigo fazendo com Parâmetro. Imagino que este não seja o melhor codigo para realizar esse tipo de operaçao, entao se puderem me mostrar um código melhor ou que funcione com o parâmetro.


    Vlw.

    Abraço.


    • Editado Bruno Crabi sábado, 3 de agosto de 2013 17:30
    sábado, 3 de agosto de 2013 17:28

Todas as Respostas

  • Cara começa a trabalhar com stored procedures.

    No seu banco MySql você cria a procedure e faz a chamada da sua aplicação

    Criando a procedure no banco.

    DELIMITER $$
    DROP PROCEDURE IF EXISTS 'nomedasuaprocedure'
    $$
    CREATE  PROCEDURE ''nomedasuaprocedure''(parametro VARCHAR(50))
    BEGIN

    //coloque aqui o select que esta concatenado no comand text, abaixo um exemplo de como a query vai filtrar pelo parâmetro de entrada.
    //        select *
     //       FROM    tabela
     //      WHERE   campo LIKE CONCAT('%', parametro, '%');

    END
    $$
    DELIMITER ;

    Após criar é só realizar as chamadas pela aplicação.

    public DataSet RetornaQuery()
            {
                var dsDados = new DataSet();

                var cmd = new SqlCommand("nome da procedure", objConstrutor.Cnn()) { CommandType =     CommandType.StoredProcedure };
                var da = new SqlDataAdapter(cmd);
                try
                {
                    cmd.Parameters.AddWithValue("@parametro", valor_para_filtrar_a_query_like);
                    cmd.Connection.Open();
                    da.Fill(dsDados);
                    return dsDados;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    cmd.Connection.Close();
                    da.Dispose();
                }
            }



    terça-feira, 24 de setembro de 2013 18:50