Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
SharePoint 2010 exposes list data via OData. This post contains four super-small code snippets that show how to Create, Read, Update, and Delete items in a SharePoint list using the OData Rest API.
This blog is inactive.
New blog: EricWhite.com/blog
Blog TOCThis post is one in a series on using the OData REST API to access SharePoint 2010 list data.
- Getting Started using the OData REST API to Query a SharePoint List
- Using the OData Rest API for CRUD Operations on a SharePoint List
These snippets work as written with the 2010 Information Worker Demonstration and Evaluation Virtual Machine. That VM is a great way to try out SharePoint 2010 development. Also see How to Install and Activate the IW Demo/Evaluation Hyper-V Machine.
See the first post in this series, Getting Started using the OData REST API to Query a SharePoint List, for detailed instructions on how to build an application that uses OData to query a list. These snippets use the list that I describe how to build in that post.
Query a List
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Gears.Data;
class Program
{
static void Main(string[] args)
{
// query
TeamSiteDataContext dc =
new TeamSiteDataContext(new Uri("https://intranet/_vti_bin/listdata.svc"));
dc.Credentials = CredentialCache.DefaultNetworkCredentials;
var result = from d in dc.Inventory
select new
{
Title = d.Title,
Description = d.Description,
Cost = d.Cost,
};
foreach (var d in result)
Console.WriteLine(d);
}
}
Create an Item
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Gears.Data;
class Program
{
static void Main(string[] args)
{
// create item
TeamSiteDataContext dc =
new TeamSiteDataContext(new Uri("https://intranet/_vti_bin/listdata.svc"));
dc.Credentials = CredentialCache.DefaultNetworkCredentials;
InventoryItem newItem = new InventoryItem();
newItem.Title = "Boat";
newItem.Description = "Little Yellow Boat";
newItem.Cost = 300;
dc.AddToInventory(newItem);
dc.SaveChanges();
}
}
Update an Item
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Gears.Data;
class Program
{
static void Main(string[] args)
{
// update item
TeamSiteDataContext dc =
new TeamSiteDataContext(new Uri("https://intranet/_vti_bin/listdata.svc"));
dc.Credentials = CredentialCache.DefaultNetworkCredentials;
InventoryItem item = dc.Inventory
.Where(i => i.Title == "Car")
.FirstOrDefault();
item.Title = "Car";
item.Description = "Super Fast Car";
item.Cost = 500;
dc.UpdateObject(item);
dc.SaveChanges();
}
}
Delete an Item
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using Gears.Data;
class Program
{
static void Main(string[] args)
{
// delete item
TeamSiteDataContext dc =
new TeamSiteDataContext(new Uri("https://intranet/_vti_bin/listdata.svc"));
dc.Credentials = CredentialCache.DefaultNetworkCredentials;
InventoryItem item = dc.Inventory
.Where(i => i.Title == "Car")
.FirstOrDefault();
dc.DeleteObject(item);
dc.SaveChanges();
}
}
Comments
Anonymous
October 13, 2011
Is it possible to insert a .pdf file into a document library this way?Anonymous
May 29, 2013
My list has a person or group column and when I try to run an insert or update, all fields get updated except that one. Any thoughts as to why?Anonymous
August 13, 2015
How to update the file and field a single request?