Array
(
)

pesquisar textbox

Clezer Aragon.
   - 29 set 2011

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.
   - 03 out 2011

Puxa ninguem vai poder me ajudar

Joel Rodrigues
   - 05 nov 2011

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

#Código

            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.

Joel Rodrigues
   - 05 nov 2011

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.

Clezer Aragon.
   - 14 dez 2011

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();