pesquisar textbox

29/09/2011

0

tenho um textbox que quando faço uma busca ele de fato está trazendo qualquer palavra que se digita , só que tenho um problema , no banco tenho em registro da seguinte forma : coxim dianteiro plus

textbox :quando digito coxim ele me traz todos os coxim

quando digito coxim dianteiro , ele tambem me traz todos os coxins dianteiros

mas quando digito coxim plus ele não me traz nada ou seja os dois % só pega se for sequência exemplo: coxim dianteiro plus

queria fazer uma busca que pega-se qualquer palavra no banco não importa a sequência

pode me ajudar como fica meu codigo ?



private void pesquisar()
{

db.CommandText = "SELECT * FROM produto ";
db.CommandText += " WHERE 1=1 ";

if (box1.Text != string.Empty)
{
db.CommandText += " AND NOME LIKE @NOME";
db.AddParameter("@NOME", "%" + box1.Text + "%" );

}

if (box2.Text != string.Empty)
{
db.CommandText += " AND INFORMACAOTECNICA LIKE @INFORMACAOTECNICA";
db.AddParameter("@INFORMACAOTECNICA","%" + box2.Text + "%");
}

ds = db.ExecuteDataSet(db.CommandText);

gvProdutos.DataSource = ds;
gvProdutos.DataBind();
}
Clezer Aragon.

Clezer Aragon.

Responder

Posts

03/10/2011

Clezer Aragon.

Puxa ninguem vai poder me ajudar
Responder

05/11/2011

Joel Rodrigues

Boa noite, eis um trecho de código que pode lhe ajudar:

            box1.Text +=  ;
            string busca = SELECT * FROM PRODUTO WHERE ;
            int ultInd = 0;
            for (int i = 0; i < box1.Text.Length; i++)
            {
                if (textBox1.Text[i].ToString() ==  )
                {
                    
                    busca += NOME LIKE % + box1.Text.Substring(ultInd, i - ultInd) + % OR ;                    
                    ultInd = i + 1;
                }
            }
            busca += (1=0);
            db.CommandText = busca;

Esse código vai fazer o seguinte:
suponha que eu digite COXIM PLUS, o resultado será todos os registros que contenham COXIM OU PLUS no nome, dessa forma para todas as palavras que forem digitadas.
Feito isso, basta executar o db e obter os resultados. Ah, não esqueça de por os filtros que precisar além desse.

Espero ter ajudado.
Responder

05/11/2011

Joel Rodrigues

Considere
box1.Text += [ASPAS DUPLAS COM ES P AÇO EM BRANCO]
Aqui não se pode colocar aspas, então veja onde precisa e ponha no seu código.
Responder

14/12/2011

Clezer Aragon.

Obrigado joel mas fiz dessa forma :

private void pesquisar()
{
SqlConnection conn = new SqlConnection(@Data Source=INFORMATICA005;Initial Catalog=unibanco;Integrated Security=True);
SqlCommand comm = conn.CreateCommand();
comm.CommandText = SELECT * FROM uniao ;
string[] palavras = box2.Text.Split( );
string sep = where descricao like;
int cont = 0;
foreach (string s in palavras)
{

comm.CommandText += sep + @palavra + cont.ToString();
comm.Parameters.AddWithValue(@palavra + cont.ToString(), % + s + %);
sep = AND descricao like;
cont++;

}


SqlDataAdapter da = new SqlDataAdapter(comm);
DataSet ds = new DataSet();
da.Fill(ds,uniao);
gvProdutos.DataSource = ds.Tables[uniao];

gvProdutos.DataBind();
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar