이번 끄적거림은 SPQuery 입니다.
리스트의 데이터를 불러올때 사용합니다.
아래 예는 하나의 리스트에 제목이 테스트인 데이터를 불러 오는 코드 입니다.
SPQuery에 CAML 쿼리를 사용 합니다.
using (SPSite _site = new SPSite("http://mysiteUrl"))
{
using (SPWeb _web = _site.OpenWeb())
{
SPList _list = _web.Lists["mylist"];
//CAML 쿼리 StringBuilder
StringBuilder sbQuery = new StringBuilder();
sbQuery.Append("<OrderBy>");
sbQuery.Append("<FieldRef Name=\"Created\" Ascending=\"False\" />");
sbQuery.Append("</OrderBy>");
sbQuery.Append("<Where>");
sbQuery.Append(" <Eq>");
sbQuery.Append(" <FieldRef Name=\"Title\" />");
sbQuery.Append(" <Value Type=\"Text\">테스트</Value>");
sbQuery.Append(" </Eq>");
sbQuery.Append("</Where>");
//ViewField StringBuilder
StringBuilder sbViewField = new StringBuilder();
sbViewField.Append("<FieldRef Name=\"Title\" />");
sbViewField.Append("<FieldRef Name=\"Created\" />");
SPQuery _query = new SPQuery();
//Query에서는 CAML 쿼리를 입력 받습니다.
_query.Query = sbQuery.ToString();
//ViewFields 보고 싶은 필드만 정의 할 수 있습니다
//ViewFields에 아무것도 정의 하지 않으면 모든 필드를 보여 줍니다.
_query.ViewFields = SPQueryViewStringReturn();
//RowLimit 는 몇개의 데이터를 반환할지를 정해 줍니다.
//RowLimit 를 정하지 않을 경우 SharePoint 에서 기본 적으로 Select Top 2억 이상인가??
//암튼 그정도로 구성하여 엄청난 압박을 가하게 됩니다.
//RowLimit는 꼭 써주자고요~~ 요놈 때문에 마소형들한테 한번 혼났음..
_query.RowLimit = Convert.ToUInt32(_list.ItemCount);
SPListItemCollection _listItems = _list.GetItems(_query);
Foreach (SPListItem item in _listItems)
{
Label1.Text += item["Title"].ToString();
}
}
}
'SharePoint > SharePoint 개발' 카테고리의 다른 글
SharePoint Popup 창 뛰우기-1 (0) | 2012.05.08 |
---|---|
SharePoint SPQuery-3 (0) | 2012.04.26 |
SharePoint SPQuery-2 (0) | 2012.04.25 |
SharePoint-CAML (0) | 2012.04.24 |
SharePoint 프로젝트 생성 (0) | 2012.04.18 |