Search code examples
c#sharepointsharepoint-2007

SharePoint ListItem Error: "Value does not fall within the expected range"


Hi I am developing using the SharePoint namespace and I ran into the following error when I try to retrieve a Title field from the list items.

Value does not fall within the expected range

I know however that the field exists because I printed out all the fields.

string value = (string)listItem[listItem.Fields["Title"].Id];
Console.WriteLine("Title = " + value);

Update: To what extent does the View that was used to retrieve the list items play a role in what fields will be available? This code fails with the same exception:

SPListItemCollection items = list.GetItems(list.DefaultView);
foreach (SPListItem listItem in items)
{
  try
  {
    Console.WriteLine("Title = " + listItem.Title);
  }
  catch (Exception e) 
  { 
    Console.WriteLine("Exception: " + e.Message); 
  }
}

In both cases the list.DefaultView property was used to retrieve the list items.


Solution

  • I had this issue because the column was not part of the default view. Instead of relying on the view, query for the specific columns directly when creating the SPListItemCollection.

      SPList cityList = web.Lists[cityListName];
      SPListItemCollection items = cityList.GetItems("Title","LocCode");
      foreach (SPListItem item in items)
         {
              cityName = item["Title"].ToString().Trim();
              cityCode = item["LocCode"].ToString().Trim();
         }