C# & SharePoint. Read SharePoint list items to datatable
In this post I write some examples of C# coding for SharePoint list items. These methods are rather fast and it's very actual for SharePoint.
It’s a method to return SPListItemCollection. I have extracted it just to easier modify code.
public SPListItemCollection LoadDataTable()
{
SPWeb oWebsite = SPContext.Current.Web;
SPList oList = oWebsite.Lists["corp_events"];
SPQuery liQuery = new SPQuery();
string query = @"
<ViewFields>
<FieldRef Name='ID' />
<FieldRef Name='Title' />
<FieldRef Name='DatePlanned' />
<FieldRef Name='DateFact' />
<FieldRef Name='Company' />
</ViewFields>";
liQuery.Query = query;
SPListItemCollection myItems = oList.GetItems(liQuery);
return myItems;
}
I call up the method and get SPListItemCollection. After that I want to convert it to datatable. Don’t forget to add using System.Data to your code.
SPListItemCollection myItems = LoadDataTable();
DataTable dt = new DataTable();
dt = (DataTable) myItems.GetDataTable();
I have class CEvent
public class CEvent
{
public string eventId { get; set; }
public string title { get; set; }
public string datePlan { get; set; }
public string dateFact { get; set; }
public string company { get; set; }
}
And want to convert my datatable to List<CEvent>. Here’s one of the ways to do it.
List<CEvent> events = new List<CEvent>();
events = (from DataRow row in dt.Rows
select new CorpEvent
{
eventId = row["ID"].ToString(),
title = row["Title"].ToString(),
datePlan = row["datePlan"].ToString(),
dateFact = row["dateFact"].ToString(),
company = row["company"].ToString()
}).ToList();

Remove a lot of elements from very large SharePoint Lists
C#. How to sort List