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

33,682

Solution 1

I don't know if your error is solved or not. But I was facing the same issue and I found the solution to the problem.

You have to go to:
Central Administration > Application Management > Manage Web Applications
select the Web Application in use and choose:
“General Settings > Resource Throttling” via the Ribbon.

In that scroll down and look for "List View Lookup Threshold" in that by default value is 8 increase the value till the error is gone.

Reference Link

Solution 2

I'd suggest something like

if (item.Fields.ContainsField("Last_x0020_Modified"))
{
    if (query.ViewFields.Contains("Last_x0020_Modified"))
    ...

B/c if the field wasn't requested in the SPQuery.ViewFields, you probably can't get it (exceptions include Created field, ID field)

Solution 3

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();
     }

Solution 4

The "Title" field may exist in the list but not in the default view. Can you do this?

foreach (var item in list.Items) Console.WriteLine((string)item["Title"]);
Share:
33,682
Cookie
Author by

Cookie

Updated on July 09, 2022

Comments

  • Cookie
    Cookie almost 2 years

    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.

  • Cookie
    Cookie about 15 years
    Any attempt to reference item["Title"] throws that exception.
  • Shyam sundar shah
    Shyam sundar shah almost 11 years
    I am facing same problem
  • user2466501
    user2466501 about 10 years
    I had this very problem. I had validated that my field names were correct. Also, it appears Microsoft has changed the default value of this from 8 to 12. I had 12 in my development environment but 8 in the staging environment where the problem arose. I had to reset the app pool in IIS for the setting change to take effect.