SharePoint列表错误:";值不在预期范围内;

SharePoint列表错误:";值不在预期范围内;,sharepoint,list,Sharepoint,List,您好,我正在使用SharePoint命名空间进行开发,在尝试从我的一个LSIT检索URL列时遇到以下错误 "Value does not fall within the expected range" 我所做的就是: item["URL"] 有人能告诉我怎么做吗?这通常意味着“URL”不是列表中的字段 如果是升级的InfoPath列,请尝试停用表单模板并将其重新激活到站点。我注意到,每当我向infopath模板添加新的提升字段时,我都必须这样做。若要获取SPListItem的URL,请使用

您好,我正在使用SharePoint命名空间进行开发,在尝试从我的一个LSIT检索URL列时遇到以下错误

 "Value does not fall within the expected range"
我所做的就是:

item["URL"]
有人能告诉我怎么做吗?

这通常意味着“URL”不是列表中的字段


如果是升级的InfoPath列,请尝试停用表单模板并将其重新激活到站点。我注意到,每当我向infopath模板添加新的提升字段时,我都必须这样做。

若要获取
SPListItem
的URL,请使用
项。URL
错误肯定意味着找不到该字段

调试该进程并查看
ListItem.Fields.SchemaXML
属性以查找其内部名称,它可以在内部保存为
URL
以外的内容。还可以使用以下方法获取列表项值

SPField l_field = l_item.Fields.GetField("URL");
string l_fieldValue = l_item[l_field.Id].ToString();

GetField
方法通过DisplayName和InternalName查找字段。

有一种检索URL的特殊方法。试试这个:

    public static string GetItemURLValue(SPListItem item, string fieldName)
    {
        string exit = "";
        SPFieldUrlValue link = new SPFieldUrlValue(item[fieldName].ToString());
        exit = link.Url;
        return exit;
    }
SPListItem li = ...
SPFieldUrlValue fuv = new SPFieldUrlValue(li[strFieldName].ToString());
return fuv.Url;

我的是Windows应用程序。我曾经在创建设置并尝试部署后遇到此异常

我的应用程序需要在Excel中编写,然后保存。我使用了COM组件“MicrosoftExcel11.0对象”的引用。我注意到,当我添加此引用时,实际上有3个dll出现在我的引用列表中

  • Microsoft.office.core
  • 胜过
  • VBIDE

  • 我删除了“VBIDE”引用,我的问题就解决了。

    如果它只是一个列名,并且是“单行文本”格式,那么:

    item["URL"] != null ? item["URL"].ToString() : "Not Found";
    

    不是我要查找的URL,我要查找的是我创建的列URL。如果它是升级的InfoPath列,请尝试停用表单模板并将其重新激活到站点。我注意到,每当我向infopath模板添加新的提升字段时,我都必须这样做。我建议SharePoint manager在SharePoint中查看架构xml和其他有趣的内容两点-不要忘记SPBuiltInFieldId枚举,如果您使用的是SPQuery版本的GetItems,并且在查询部分包含了所需的字段,那么为什么sharepoint不能只说“未找到字段”之类的话?也许只是我,但这些错误信息令人沮丧。似乎他们只是让代码的异常冒泡出来,然后让程序员猜测…+1,@HenryC:我在
    中缺少了字段,并且在尝试使用它时得到了OP的错误。救了我!谢谢。对不起,我看到ryan发布了一个类似的解决方案。您使用的是哪种语言?在特定的
    项上它可能为空?