执行CAML查询sharepoint 2007时出现异常

执行CAML查询sharepoint 2007时出现异常,sharepoint,sharepoint-2010,sharepoint-2007,Sharepoint,Sharepoint 2010,Sharepoint 2007,文档库中列的名称为: 列名=>关键字(子流程、方法、服务模型等) 列类型=>多行文本 我们在caml查询中使用上述列名,如下所示 query.Query = "<Where><Eq><FieldRef Name='Keywords(Sub-Processes,Methodology,Servicing Model, etc)'/><Value Type='Text'>Merchant Services,Merchant Set Up</Val

文档库中列的名称为: 列名=>关键字(子流程、方法、服务模型等) 列类型=>多行文本

我们在caml查询中使用上述列名,如下所示

query.Query = "<Where><Eq><FieldRef Name='Keywords(Sub-Processes,Methodology,Servicing Model, etc)'/><Value Type='Text'>Merchant Services,Merchant Set Up</Value></Eq></Where>";
query.query=“商户服务,商户设置”;
但是,当我们运行代码时,会出现异常:

Microsoft.SharePoint.SPException:一个或多个字段类型不可用 安装正确。转到列表设置页面删除这些设置 田地

此异常是否是因为列名中使用了特殊字符?如果是,则如何更正

我们无法更改列名,因为它是必需的。

我可以肯定地告诉您(给定特殊字符),这不是字段的内部名称。它可能是显示名称,但不是内部名称

错误是因为没有包含您所提供内容的内部名称的字段

就我个人而言,当我想查找字段的内部名称时,我会转到列表的列表设置并编辑列。执行此操作时,将有一个带有“field=”后跟内部名称的查询参数。还有其他地方可以找到它,还有其他sharepoint工具(另一张海报中提到了sharepoint Manager)可以用来获取此类信息。

我使用了“关键词”\u x0020\u x002f\u x0020\u Folksnomy”,它对我很有效。 我获取了文档库的所有列并将其绑定到GridView,在GridView中我找到了这个名称

显示列名=>关键字(子流程、方法、服务模型等)

错的是=> 关键词(子流程、方法论、服务模型、等等)


新找到的正确名称是=>关键字\u x0020\u x002f\u x0020\u民俗学

内部名称和显示名称彼此非常不同。它们在某些情况下可能是相同的,但并非所有情况下都是相同的。在两个带空格的单词之间通常有一个转义序列

在运行时检索内部名称通常是一种好的做法,而不是对其进行硬编码

以下是如何做到这一点:

var internalName=list.Fields.GetFieldByInternalName(column.ColumnName).Title;

我正在添加代码,但在提交代码后,它不会显示:(query.query=“商户服务,商户设置”@Rushikesh您确定字段的内部名称很长吗?请与SharePoint manager联系以确定。或者您可以尝试改为使用字段ID
ID=“{G-U-I-D}”
+1-我就是这样做的,我会如何回答这个问题。