quinta-feira, 6 de dezembro de 2007

Filtrar dados de uma lista através de CAML

Olá Amigos,

Ando meio sem tempo para postar, hoje vou fazer um breve post sobre como filtrar dados de uma lista.

Como diria Mauro Sant'Anna "Nem tudo que pode ser inventado deve ser inventado. Um grande exemplo é o CAML" :)

Ao invés de utilizarmos consultas SQL para filtrarmos listas, a Microsoft criou uma linguagem chamada CAML. O CAML é um xml para expressar queries de bancos de dados.

Se você quiser aprender mais sobre CAML, verifique o link abaixo. Ele fornece uma introdução sobre o assunto.

http://msdn2.microsoft.com/en-us/library/ms948028.aspx

Bem, chega de conversa =] Vamos a um pequeno exemplo :)

Problema:
Criar uma webPart, que lê um parametro passado pela QueryString e filtra a lista por este parametro.

//Abrindo a web
SPWeb web = SPContext.Current.Web;

//Criado o CAML
//Note que ele faz uma comparação entre o ID passado pela queryString e a coluna ID da lista
SPQuery q = new SPQuery();
q.Query = "" + Convert.ToString("0" + Page.Request.QueryString["ID"]) + "";

//Carrega em itens uma colletion com os itens (tuplas) da lista task.
SPListItemCollection itens = web.Lists["Tasks"].GetItems(q);

Era isso =]

Abraços,
Leonardo