pesquisar textbox
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();
}
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.
Curtidas 0
Respostas
Clezer Aragon.
29/09/2011
Puxa ninguem vai poder me ajudar
GOSTEI 0
Joel Rodrigues
29/09/2011
Boa noite, eis um trecho de código que pode lhe ajudar:
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.
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.
GOSTEI 0
Joel Rodrigues
29/09/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.
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.
GOSTEI 0
Clezer Aragon.
29/09/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();
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();
GOSTEI 0