quinta-feira, 6 de setembro de 2012

Série LINQ 03 - Where II

WHERE

A cláusula where é usado em uma expressão de consulta para especificar os elementos da fonte de dados que será devolvido na consulta. Aplica-se uma condição booleana para cada elemento de origem (referenciado pela variável de intervalo) e retorna aqueles para os quais a condição especificada é verdadeira. Uma expressão de consulta simples pode conter várias cláusulas WHERE e uma cláusula simples pode conter subexpressões múltipla de predicados.

Exemplos

No exemplo seguinte, caso não tivesse a cláusula where todos os elemento da fonte de dados iriam ser imprimindo, mas a condição é(num < 5).


//fonte de dados
int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

//Filtra o a consulta com a condição de que num deve ser menor que 5
var query = from num in tbNumero
                where num < 5
                select num;

//Imprime a consulta query
foreach (var n in query)
{
  Console.Write(n.ToString() + " ");
}


//Saída: 4 1 3 2 0



Dentro de uma cláusula where,  você pode especificar quantas condições forem necessárias usando os operadores &&(and) e | |(or). No exemplo a seguir, a consulta especifica duas condições, a fim de selecionar apenas os números pares e que são menores que cinco.


//Fonte de dados
int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

//Cria uma consulta com duas condições
var query = from num in tbNumero
               where ((num < 5) && (num % 2 == 0))
               select num;

//Imprime a consulta
foreach (var s in query)
{
  Console.Write(s.ToString() + " ");
}

// Saída: 4 2 0



Uma cláusula where conter um ou mais métodos que retornam valores booleanos. No exemplo a seguir, a cláusula utiliza um método para determinar se o valor é par ou ímpar.


//Método estático.
static bool IsPar(int i)
{
  return i % 2 == 0;
}

public static void Main()
{
  //Fonte de Dados
  int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

  var query = from num in tbNumero
              where IsPar(num)
              select num;

  //Imprime a consulta
  foreach(var n in query)
  {
    Console.Write(n.ToString() + " ");

  }

}

//Saída: 4 8 6 2 0

Observações

A cláusula where é um mecanismo de filtragem. Ela pode ser posicionado em qualquer lugar em uma expressão de consulta, exceto que ela não pode ser a primeira ou a última cláusula. Uma cláusula where pode aparecer antes ou depois de uma cláusula de group, dependendo se você tem que filtrar os elementos de origem antes ou depois eles foram agrupados.

Se uma condição especificada não é válido para os elementos na fonte de dados, um erro de tempo de compilação irá resultar.


REFERÊNCIAS

Documentação MSDN - LINQ 




domingo, 2 de setembro de 2012

Série LINQ 02 - Consultas LINQ e Filtro

Este tópico fornece uma breve introdução às expressões de consulta LINQ e alguns dos tipos típicos de operações que você executa em uma consulta.

 Como obter uma fonte de dados
Em uma consulta de LINQ, a primeira etapa é especificar a origem de dados. Em C# como na maioria das linguagens de programação uma variável deve ser declarada antes que ele possa ser usado. Em uma consulta de LINQ , a cláusula from vem primeiro na ordem para apresentar os dados de origem (carro) e o intervalo variável (car).


var selecionarCarro= from car in tbCarro
                        select car;

Provavelmente a operação de consulta mais comum é aplicar um filtro no formulário de uma expressão Booleana. O filtro faz com que a consulta retorne apenas aqueles elementos para os quais a expressão for verdadeira. O resultado é produzido usando a cláusula where. O filtro efeito especifica quais elementos podem excluir a seqüência de origem. No exemplo a seguir, somente os carros que têm um cor azul são retornados.


var selecionarPorCor =   from car in tbCarro
                           where car.cor == "Azul"
                           select car;
 
 
Você pode usar os operadores AND e OR para aplicar em várias expressões, conforme necessário com  clásula a where. Por exemplo, para retornar somente os carros com cores "Azul" AND cujo preço é 50 mil reais , você escreveria o seguinte código:
 
 
 where caro.cor =="Azul" && cust.Preco == 50.000
 
 
Para retornar os carros com cores azul e vermelho, você escreveria o seguinte código:
 
where cust.cor == "Azul" || cust.cor == "Vermelho" 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

sábado, 4 de agosto de 2012

DICAS 01 - Adicionar uma linha em branco em uma DropDownList C# ASP.NET


Olá Pessoal, o blog esta criando uma nova série, chamada Dicas, envolvida no nosso dia a dia, então vamos lá para a primeira dica.

Adicionar uma linha em branco em uma dropDownList em C# e ASP.NET


Cenário: Tenho uma lista de Cidade, e não quero que exiba a primeira cidade, mas uma linha em branco, forçando o usuário a selecionar uma cidade.

Obs: Se baseia na label Autor como resultado final e Editora como a querendo quer ser inicializar em branco

Como na imagem:

















Solução: Aonde você alimenta a DropDownList insira o código abaixo:

ddlAutor.Items.Insert(0, new ListItem("", ""));
  
Onde 

ddlAutor = nome da DropDown List
Items = Coleção de funcionalidade para o controle
Insert = Insere um item especifico

No caso o método insert ele é sobrecarregado, por isso, existem vários métodos que podemos usar. No caso estaremos usando os parâmetros abaixo.

ddlAutor.Items.Insert(int index, new ListItem item);
Abaixo o método completo

ddlAutor.DataTextField = "Nome";
ddlAutor.DataValueField = "Codigo";

ddlAutor.DataSource = tbAutor;
ddlAutor.DataBind();

ddlAutor.Items.Insert(0, new ListItem("", ""));

Bom é isso pessoal, espero que ajude, qualquer dúvida poste nos comentários ou envie-nos um email para duvida@nstutoriais.com

quarta-feira, 4 de julho de 2012

Série LINQ 01 - Introdução


O que é LINQ?
Surgiu no evento Microsoft Professional Developers Conferece(PDC) em 2005, pela equipe liderada por, Anders Hejlberg. Apresentaram uma nova abordagem que unifica a forma como os dados podem ser recuperados em .NET, assim surgiu Language Integrated Query(LINQ). Linq fornece uma maneira uniforme para recuperar dados de qualquer objeto que implementa a interface IEnumerable. Com o LINQ, podemos usa as seguintes fontes de dados: arrays, coleções de dados relacionais e XML.
Por que o LINQ?
Com o LINQ, você pode usar a mesma sintaxe para recuperar dados de qualquer fonte de dados. Exemplo:


var query = from e in funcionários
            where e.codigo == 1
select e.nome



              A sintaxe do LINQ é muito semelhante ao SQL. O Objetivo do LINQ não foi adicionar outra maneira de acessar os dados, mas para fornecer um conjunto nativo integrado de instruções para consultar qualquer tipo de fonte de dados. Usando a linguagem C#, podemos escrever o código de acesso de dado e o compilador será capaz de impor segurança de tipo e até mesmo consistência lógica. LINQ fornece um rico conjunto de instruções para implementar consultas complexas suportando agregação, joins(unir tabelas), sortings(classificação) e muito mais.


A seguir, as principais partes do LINQ, que você pode trabalhar.

LINQ to Objects: é uma API que fornece métodos que representam um conjunto de operadores padrão de consulta (SQOs) para recuperar dados de qualquer objeto cuja classe implementar a interface IEnumerable. Essas consultas são executadas em memória de dados.

LINQ to ADO.NET: aumenta SQOs para trabalhar com os dados relacionais. (É composto por três partes (Ver figura 1)).

LINQ to SQL: (antigamente DLinq) é usado para consultar bancos de dados relacionais como o Microsoft SQL Server.  Para tirar proveito do LINQ to SQL você deve a seguinte referência;

System.Data.Linq;

LINQ to DataSet: suporta consultas usando os conjuntos de dados ADO.NET e tabelas de dados.

LINQ to Entities: é uma solução Microsoft ORM, que permite aos desenvolvedores usa entidades (uma característica ADO.NET 3.0) para especifica a estrutura de objetos de negócios e usar o LINQ para consultá-los

LINQ to XML: (antigamente XLinq) SQOs não só amplia, mas também inclui uma série de XML recursos específicos para a criação de documentos XML e consultas. Use a referencia a seguir:
System.Xml.Linq




Nesta serie de artigos estaremos aprendendo sobre LINQ to SQL.