Usuário com melhor resposta
Consulta com Entity Framework a partir de um TextBox (lambda)

Pergunta
-
Bom dia,
Gostaria de fazer uma consulta com parâmetros passados em um TextBox, utilizo framework entity, com expressões lambda.
Obrigado.
- Movido AndreAlvesLimaModerator quarta-feira, 4 de julho de 2012 11:27 (De:.NET Development - Geral)
Respostas
-
Marcos, boa tarde.
você pode fazer como no exemplo abaixo:
var query = myCodeFirst.Produtos.Where(c => c.Nome.Contains(TextBox1.Text)).ToList();
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Romy Moura terça-feira, 3 de julho de 2012 16:21
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator quarta-feira, 4 de julho de 2012 13:39
-
Olá Marcos,
Neste caso podemos refinar a consulta. O CONTAINS funciona como um Like do SQL, vamos alterar para == e ver o resultado.
Destam forma:
protected void Button1_Click(object sender, EventArgs e) { using (var ctx = new Web1Entities()) { var query = ctx.produto.Where(c => c.nomeProduto == TextBox1.Text).ToList(); GridView2.DataSource = query; GridView2.DataBind(); } }
[]s!Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil- Marcado como Resposta Marcos Bazilio quarta-feira, 4 de julho de 2012 13:37
Todas as Respostas
-
Marcos, boa tarde.
você pode fazer como no exemplo abaixo:
var query = myCodeFirst.Produtos.Where(c => c.Nome.Contains(TextBox1.Text)).ToList();
Olavo Oliveira Neto
http://olavooneto.wordpress.com
Twitter @Olavooneto
Facebook Olavo Neto
Linkedin Olavo Neto
Se for útil marque como resposta e faça um Developer feliz :)- Sugerido como Resposta Romy Moura terça-feira, 3 de julho de 2012 16:21
- Marcado como Resposta Fernando Henrique Inocêncio Borba FerreiraMicrosoft employee, Moderator quarta-feira, 4 de julho de 2012 13:39
-
= >, que é lido como "vai para".O lado esquerdo do operador lambda especifica os parâmetros de entrada (se houver) e o direito contém a expressão ou o bloco de instruções
http://msdn.microsoft.com/pt-br/library/bb397687.aspx
Ivan Ferraz, MCP,MCTS Desenvolvedor 3 Estrelas ASP.NET
www.ivanferraz1105.blogspot.com
- Editado Ivan Ferraz - MCP quarta-feira, 4 de julho de 2012 00:18
- Sugerido como Resposta Ivan Ferraz - MCP quarta-feira, 4 de julho de 2012 00:18
-
-
Prezado(a),
Estou migrando seu post para o fórum de Acesso a Dados.
Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
Obrigado.André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Olá Marcos,
O código que o Olavo passou esta certinho.
Para apresentar os dados no GridView vc deve fazer algo como:
var query = myCodeFirst.Produtos.Where(c => c.Nome.Contains(TextBox1.Text)).ToList(); this.seuGridView.DataSource = query; this.seuGridView.Bind();
[]s!Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
Olá Fernando,
Bom fiz assim :
protected void Button1_Click(object sender, EventArgs e)
{
using (var ctx = new Web1Entities())
{
var query = ctx.produto.Where(c => c.nomeProduto.Contains(TextBox1.Text)).ToList();
GridView2.DataSource = query;
GridView2.DataBind();
}
}Ele tá trazendo todo o conteúdo da tabela... e não só o que eu dígito no TextBox...
-
Olá Marcos,
Neste caso podemos refinar a consulta. O CONTAINS funciona como um Like do SQL, vamos alterar para == e ver o resultado.
Destam forma:
protected void Button1_Click(object sender, EventArgs e) { using (var ctx = new Web1Entities()) { var query = ctx.produto.Where(c => c.nomeProduto == TextBox1.Text).ToList(); GridView2.DataSource = query; GridView2.DataBind(); } }
[]s!Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil- Marcado como Resposta Marcos Bazilio quarta-feira, 4 de julho de 2012 13:37
-
-
Marcos,
Se vc não se importa vou marcar a resposta do Olavo como certa também, pois ele foi o primeiro a atender a thread e montou toda a query lambda.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
-
-
Olá Marcos,
Neste caso, o que eu recomendo é criar uma classe com todos os dados que vc quer apresentar para o usuário e preencher esses dados com informações da sua consulta.
Desta forma:
protected void Button1_Click(object sender, EventArgs e) { using (var ctx = new Web1Entities()) { var query = (from p in ctx.produto where p.nomeProduto == TextBox1.Text select new ClasseVisualizacao {NomeProduto = p.NomeProsuto, Fabricante = p.Fabricante.Nome}).ToList(); GridView2.DataSource = query; GridView2.DataBind(); } }
Neste caso, estou simulando que vc teria criado uma classe chamada ClasseVisualizacao, com as propriedades NomeProduto e Fabricante.
Fiz a query com LINQ, pois neste cenário é mais intuitivo o seu uso.
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil -
-
Fiz assim....
using (var ctx = new Web1Entities())
{
GridView2.DataSource = (from p in ctx.produto
where p.nomeProduto == TextBox6.Text
select new
{
nomeproduto = p.nomeProduto,
tipoProduto = p.tipoProduto,
}).ToList();
GridView2.DataBind();
}Sendo o campo tipoProduto esta em outra tabela...
Ao chamar o Grid no campo tipoProduto aparece Web1.tipoProduto, onde deveria aparecer o Grupo que o produto pertence...
-
-
Olá Marcos,
Com relação ao LINQ e o EF existem algumas diferenças conceituais.
O EF é um framework de acesso a dados. Ele é um recurso utilizado para conectar em bases de dados. LINQ é uma linguagem de consulta a banco de dados. Vc escreve uma consulta LINQ, o EF recebe essa consulta e executa na base de dados.
Este artigo deve ajudar: http://msdn.microsoft.com/pt-br/library/jj128159
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.com/
Twitter: @ferhenrique
Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil