본문 바로가기

SharePoint/SharePoint 개발

SharePoint SPQuery-1

이번 끄적거림은 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