Client Object Model 을 이용하여 (ShaPoint 목록 데이터)A 를 (ShaPoint 목록)B 으로 이관합니다.
A 와 B 가 필드가 같고 같은 사이트에 목록이 있을 경우 입니다.
using JohnHolliday.Caml.Net - CAML 쿼리를 사용하기위해서 입니다.
using SP = Microsoft.SharePoint.Client;
string orderBy = string.Empty;
string viewFields = string.Empty;
using (SP.ClientContext ClientCon = new SP.ClientContext("http://mysite"))
{
SP.Web site = ClientCon.Web;
NetworkCredential Credential = new NetworkCredential(Admin, Password, Domain);
ClientCon.Credentials = Credential;
SP.List list = site.Lists.GetByTitle("mylist");
SP.List addlist = site.Lists.GetByTitle("myaddlist");
//데이터를 새로 저장하기 위하여 선언
SP.ListItemCreationInformation Creationinfo = new SP.ListItemCreationInformation();
ClientCon.Load(list);
ClientCon.Load(addlist);
ClientCon.ExecuteQuery();
//옮길 목록의 필드 컬렉션을 선언
SP.FieldCollection fields = list.Fields;
ClientCon.Load(fields);
ClientCon.ExecuteQuery();
SP.CamlQuery spcaml = new SP.CamlQuery();
orderBy = CAML.OrderBy(CAML.FieldRef("Created", CAML.SortType.Ascending));
spcaml.ViewXml = "<View Scope=\"Recursive\"><Query>" + orderBy + "</Query><RowLimit>" + list.ItemCount + "</RowLimit></View>";
SP.ListItemCollection items = list.GetItems(spcaml);
foreach (Microsoft.SharePoint.Client.ListItem item in items)
{
Microsoft.SharePoint.Client.ListItem additem = list.AddItem(Creationinfo);
foreach (Microsoft.SharePoint.Client.Field field in fields)
{
//ReadOnlyField 필드에도 데이터를 이관 하고 싶을때는
//field.ReadOnlyField = False; 주고
//데이터를 담은 다음 field.ReadOnlyField = True; 바꿔준다
if (!field.ReadOnlyField)
{
additem[field.StaticName] = item[field.StaticName];
}
}
additem.Update();
ClientCon.ExecuteQuery();
}
}
'SharePoint > SharePoint 개발' 카테고리의 다른 글
Sharepoint 로딩 화면 - SPLongOperation (0) | 2014.09.24 |
---|---|
SharePoint 권한 상승 (0) | 2013.05.06 |
Client Object Model - 데이터 삭제하기 (0) | 2012.10.24 |
Client Object Model - 데이터 저장하기 (0) | 2012.07.25 |
SharePoint 폴더 형식 만들기 (0) | 2012.07.11 |