【发布时间】:2012-12-11 07:13:13
【问题描述】:
CamlQuery query = new CamlQuery();
query.ViewXml = @"<View>"
+ "<Query>"
+ "<Where><Eq><FieldRef Name='Name' /><Value Type='Text'>"
+ fileName
+ "</Value>"
+ "</Eq>"
+ "</Where>"
+ "</Query>"
+ "</View>";
ListItemCollection item = list.GetItems(query);
clientContext.Load(item);
clientContext.ExecuteQuery();
这个查询给了我错误一个或多个字段类型没有正确安装。转到列表设置页面以删除这些字段。
如果我使用 <Where><Eq><FieldRef Name='Title' /><Value Type='Text'> 而不是 Name ,没关系。
它有什么问题? 名称在列表中。
【问题讨论】:
-
在 SPQuery 中,您必须使用字段的内部名称。请验证名为 what's the internal name of your
Namefield 的字段。 -
@MarekKembrowski -> 什么是内部名称?抱歉,我对 SharePoint 很陌生。
-
长话短说 - SharePoint 字段有两种名称 - 显示名称和内部名称。在某些地方(例如
SPListItem[string fieldName])必须使用显示名称,在某些地方(例如SPQuery)必须使用内部名称。检查字段的内部名称的最简单方法是转到 SharePoint 网站上的字段定义并检查 url 中的查询字符串。例如:http://localhost/_layouts/FldEdit.aspx?List={F8645DD3-CE80-4ECF-849F-6F851EECA2A7}&Field=LocalNumber我的Local Number字段具有内部名称LocalNumber。 -
所以在上传的时候,我们也必须提供内部名称吗?或者它是由 SharePoint 自动创建的?谢谢你的回答!!
-
“上传”是什么意思?大多数情况下,当您创建新字段(列)时,SharePoint 会自动创建内部名称。在某些情况下,您可以强制使用您选择的内部名称(当您从 xml 创建字段时),但大多数情况下,您无法控制它。
标签: sharepoint caml sharepoint-clientobject