SharePoint Foundation 2010 with ADO.NET Data Services

Posted by: Pravinkumar Dabade , on 4/12/2011, in Category SharePoint
Views: 54429
Abstract: In this article, we will see how to use ADO.NET Data Services introduced in SharePoint Foundation Services 2010. We will perform CRUD (Select, Insert, Update and Delete) operations using ADO.NET Data Services.

In this article, we will see how to use ADO.NET Data Services introduced in SharePoint Foundation Services 2010. We will perform CRUD (Select, Insert, Update and Delete) operations using ADO.NET Data Services.

The steps to create a SharePoint Site using a Template ‘Team Site’ remains the same, as shown in my previous article SharePoint Dashboard with Common Filters using PerformancePoint Services 2010.

Now assuming you have created a SharePoint site with ‘Team Site’ template, let’s add a ‘Customers’ list as described in below table. To create a list, click on ‘Lists’ link from the left hand navigation pane and click on ‘Create’ button. A ‘Create’ dialog box will be shown –


Once we have created a first list, we need to add a couple of columns as described in the below tables. To create a column, click on list settings from the top ‘Ribbon’ as shown below –


Now click on ‘Create Column’ link from the list settings page as shown below –


Now create the lists as described below. Also add some sample data in the lists –

Customers List –


Let’s add sample data to our ‘Customers’ list.

Create a ‘Window Project’ named ‘DataServiceInSPS2010’ using ‘Microsoft Visual Studio 2010’ as shown below –


Now design the Windows Form for our operations as shown below –



Note: Do not forget an important setting. Right click the ‘Windows Project’ in solution explorer and go to properties. From properties window, choose ‘Build’ option from the right hand side and set ‘Platform target’ to ‘x64’ as shown below –


Now we will have to add a Data Service reference in our project. Let’s first test the service which will allow us to query the data of the Lists, available in our SharePoint site. So open IIS and browse the SharePoint Web application and find ‘_vti_bin’ folder from that web application. Click on ‘Content View’ on the right hand window and look for a service named ‘ListData.svc’ as shown below –


Right click the ‘ListData.svc’ and click on ‘Browse’. You will see the list of all the SharePoint Lists in a browser as shown below –


Now let’s go back to our Windows Application which we have created few steps back and add a service reference of ‘ListData.svc’ data service in our application, as shown below –


This will show you a Add Service Reference dialog box. Copy the URL of the ‘ListData’ service which we just browsed. Click on the ‘GO’ button and name the service as ‘PurchaseOrderProxy’ as shown below –

For Example, here’s the url on my machine - http://localhost:21068/_vti_bin/ListData.svc


When you add the reference of ADO.NET data service in your application, it creates an ‘Object – Relational Mapping’ to the Lists, in our web site. It also creates a class called ‘SiteNameDataContext’ which contains the properties for each list of the web site.

The benefits of using ADO.NET Data Services –

1) You query the list data which is strongly typed.

2) As ADO.NET Data Services uses ‘Object – Relational Mapping’, it creates a type for each list in site data context class.

3) Any kind of client application can use ADO.NET Data Services.

Once you add the service reference, let’s start coding the application. As per our design, we have a DataGrid. First step is to show all the items of ‘Customers’ list in our DataGrid control.

Let’s go to the code behind of the windows form and declare an object of the SharePoint site data context which got generated when we added the service reference. The code is shown below –

Import the namespace - using DataServiceInSPS2010.PorchaseOrderProxy;

Declare an object of the site data context at class level –

PurchaseOrderSystemDataContext dataContextProxy = new PurchaseOrderSystemDataContext(new Uri("http://wingtipserver:21068/_vti_bin/ListData.svc",UriKind.Absolute));

Now in the Form_Load event, write the code shown below. This will pass the current user ID and password to authenticate the user and fetch the data of ‘Customers’ list as shown below –


If you observe the code shown above, each Customer item is presented by a class called ‘CustomersItem’. By writing a LINQ query, we are fetching the data from the customers list.

Now hit ‘F5’ and you will see the data of ‘Customers’ list in our DataGrid as shown below –


Now let’s write the code for our ‘New’ button as shown below –


Now let’s write the code to insert the item in the list ‘Customers’ as shown below –


In the above code, we are using AddToCustomers method which will take an instance of CustomerItem. Site data context provide methods for adding, updating and deleting for each list available in SharePoint Site. To insert the item into the list, use the method – SaveChanges() of the site data context.

Please note that for updating and deleting, you need to fetch all the columns of the list.

Now let’s add the code for updating an item available in ‘Customers’ list. The code is shown below –


In the above code, we are first fetching the row of the customer list and then making the changes using a method UpdateObject() which takes an object of CustomerItem class. After this step, we call the SaveChanges() method which will update the item back to SharePoint customers list.

Now let’s write the code for deleting an item from the customers list. The code is as shown below –


In the above code, we are first fetching the row of the customer list and using a method ‘DeleteObject’ which takes an object of CustomerItem class. After that we are calling SaveChanges() method which will delete the item from the SharePoint customers list.

Now try adding, updating and deleting the items from the ‘Customers’ list.

Conclusion – In this Article we have seen how to use ADO.NET Data Service called ‘ListData.svc’ to perform the CRUD operations against the SharePoint List.

This article has been editorially reviewed by Suprotim Agarwal.

Absolutely Awesome Book on C# and .NET

C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.

We at DotNetCurry are very excited to announce The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).

Organized around concepts, this Book aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on the latest .NET Core 3.0, .NET Standard and C# 8.0 (final release) too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.

Click here to Explore the Table of Contents or Download Sample Chapters!

What Others Are Reading!
Was this article worth reading? Share it with fellow developers too. Thanks!
Share on LinkedIn
Share on Google+

Pravinkumar, works as a freelance trainer and consultant on Microsoft Technologies. He is having over 10 years of experience in IT and is also a Microsoft Certified Trainer(MCT). He has conducted various corporate trainings on all versions of .NET Technologies including .NET, SharePoint Server, Microsoft SQL Server, Silverlight, ASP.NET, Microsoft PerformancePoint Server 2007 (Monitoring). He is passionate about learning new technologies from Microsoft. You can contact Pravinkumar at dabade[dot]pravinkumar [attherate] gmail[dot]com

Page copy protected against web site content infringement 	by Copyscape

Feedback - Leave us some adulation, criticism and everything in between!
Comment posted by Narsing Chavan on Thursday, May 5, 2011 4:57 AM
The demonstration is very neat, informative and straight forward. Easy to understand. Nice effort.
Comment posted by Michal on Wednesday, June 13, 2012 4:24 AM
Hi, good explicative article... anyway, did you try to add a service reference to your project, which is pointing to a clound hosted Sharepoint 2010 ? I am investigating but still unsuccessfull... would be a good post topic if you knew how to do that... see ya...
Comment posted by Prashant Kumbhar on Friday, July 20, 2012 8:51 AM
Goood Article...I am going on reading your posts from last 2hrs after the office time...Thanks
Comment posted by Hamed on Wednesday, October 10, 2012 7:54 AM
Thanks a lot.