Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- using System.Text;
- using Microsoft.SharePoint;
- namespace Demo
- {
- class Program
- {
- static void Main(String[] args)
- {
- using (SPSite site = new SPSite("http://sp"))
- {
- Int32 itemsCount = 1000;
- SPList list = site.RootWeb.GetList("http://sp/Lists/Clients/");
- Stopwatch sw = new Stopwatch();
- Console.WriteLine("Begin adding {0} items", itemsCount);
- sw.Start();
- for (Int32 i = 0; i < itemsCount; i++)
- {
- SPListItem newItem = list.AddItem();
- newItem["Title"] = "New client";
- newItem["FullName"] = "New client full name";
- newItem["Discount"] = i;
- newItem.Update();
- }
- sw.Stop();
- Console.WriteLine("Items added per {0}", sw.Elapsed);
- sw.Reset();
- SPQuery query = new SPQuery{ ViewFields = String.Format("<FieldRef ID='{0}' />", SPBuiltInFieldId.ID) };
- SPListItemCollection items = list.GetItems(query);
- Console.WriteLine("Begin updating {0} items", items.Count);
- sw.Start();
- foreach (SPListItem item in items)
- {
- item["Title"] = "New client";
- item["FullName"] = "New client full name";
- item["Discount"] = item.ID;
- item.Update();
- }
- sw.Stop();
- Console.WriteLine("Items updated per {0}", sw.Elapsed);
- sw.Reset();
- Console.WriteLine("Begin deleting {0} items", items.Count);
- sw.Start();
- while (items.Count > 0)
- items[0].Delete();
- sw.Stop();
- Console.WriteLine("Items deleted per {0}", sw.Elapsed);
- sw.Reset();
- Console.WriteLine("Begin adding {0} items with batch", itemsCount);
- sw.Start();
- String addItemBatchFormat = String.Format(
- @"<Method ID='Adding item {{0}}'>
- <SetList Scope='Request'>{0}</SetList>
- <SetVar Name='Cmd'>Save</SetVar>
- <SetVar Name='ID'>New</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#Title'>{{1}}</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#FullName'>{{2}}</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#Discount'>{{0}}</SetVar>
- </Method>", list.ID);
- StringBuilder batchBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ows:Batch OnError=\"Continue\">");
- for (Int32 i = 0; i < itemsCount; i++)
- batchBuilder.AppendFormat(addItemBatchFormat, i, "New client", "New client full name");
- batchBuilder.Append("</ows:Batch>");
- site.RootWeb.ProcessBatchData(batchBuilder.ToString());
- sw.Stop();
- Console.WriteLine("Items added per {0}", sw.Elapsed);
- sw.Reset();
- items = list.GetItems(query);
- Console.WriteLine("Begin updating {0} items with batch", items.Count);
- sw.Start();
- String updateItemBatchFormat = String.Format(
- @"<Method ID='Updating item with ID {{0}}'>
- <SetList Scope='Request'>{0}</SetList>
- <SetVar Name='Cmd'>Save</SetVar>
- <SetVar Name='ID'>{{0}}</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#Title'>{{1}}</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#FullName'>{{2}}</SetVar>
- <SetVar Name='urn:schemas-microsoft-com:office:office#Discount'>{{0}}</SetVar>
- </Method>", list.ID);
- batchBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ows:Batch OnError=\"Continue\">");
- foreach (SPListItem item in items)
- batchBuilder.AppendFormat(updateItemBatchFormat, item.ID, "New client", "New client full name");
- batchBuilder.Append("</ows:Batch>");
- site.RootWeb.ProcessBatchData(batchBuilder.ToString());
- sw.Stop();
- Console.WriteLine("Items updated per {0}", sw.Elapsed);
- sw.Reset();
- Console.WriteLine("Begin deleting {0} items with batch", items.Count);
- sw.Start();
- query = new SPQuery{ ViewFields = String.Format("<FieldRef ID='{0}' />", SPBuiltInFieldId.ID) };
- items = list.GetItems(query);
- String deleteItemBatchFormat = String.Format(
- @"<Method ID='Updating item with ID {{0}}'>
- <SetList Scope='Request'>{0}</SetList>
- <SetVar Name='Cmd'>Delete</SetVar>
- <SetVar Name='ID'>{{0}}</SetVar>
- </Method>", list.ID);
- batchBuilder = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\"?><ows:Batch OnError=\"Continue\">");
- foreach (SPListItem item in items)
- batchBuilder.AppendFormat(deleteItemBatchFormat, item.ID);
- batchBuilder.Append("</ows:Batch>");
- site.RootWeb.ProcessBatchData(batchBuilder.ToString());
- sw.Stop();
- Console.WriteLine("Items deleted per {0}", sw.Elapsed);
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement