kev*_*vin 10 sharepoint caml sharepoint-clientobject
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();
Run Code Online (Sandbox Code Playgroud)
此查询给了我错误一个或多个字段类型未正确安装.转到列表设置页面以删除这些字段.
如果我用<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>而不是Name,那就没关系.
它出什么问题了 ?列表中有名称.
提前致谢 !!!
小智 5
不确定是否可以解决该错误消息,但这是使用Name的方法:
名称(对于即用型文档库)的内部名称是“ BaseName”。
您可以使用powershell查找列表中所有列的内部名称:
$web = Get-SPWeb http://yoursiteurl
$web.lists["The List Name"].Fields | FL Title, InternalName
Run Code Online (Sandbox Code Playgroud)
查询示例:
$query.set_innerXML("<Where><Eq><FieldRef Name='BaseName'></FieldRef><Value Type='Text'>" + $ItemName + "</Value></Eq></Where>")
Run Code Online (Sandbox Code Playgroud)
Powershell中的完整示例:
function Update-SPItem($proxy, $ItemName, $listName, $lastModified, $firstName, $lastName, $chID, $emplNumber, )
{
$doc = New-Object System.Xml.XmlDocument
$viewFields = $doc.CreateElement("ViewFields")
$viewFields.set_innerXML("<FieldRef Name='ID'></FieldRef>")
$queryOptions = $doc.CreateElement("QueryOptions")
$queryOptions.set_innerXML("<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns><DateInUtc>FALSE</DateInUtc><ViewAttributes Scope='RecursiveAll'/>")
$query = $doc.CreateElement("Query")
$query.set_innerXML("<Where><Eq><FieldRef Name='BaseName'></FieldRef><Value Type='Text'>" + $ItemName + "</Value></Eq></Where>")
$results = $proxy.GetListItems($listName, "", $query, $viewFields, "", $queryOptions, "")
$rowXml = $results.GetElementsByTagName("z:row")
$ItemID = $rowXml.Item(0).GetAttribute("ows_ID")
# Update the item
$batch = $doc.CreateElement("Batch")
$batch.SetAttribute("OnError", "Continue")
$batch.SetAttribute("ListVersion","1")
$batch.SetAttribute("ViewName", "")
$batch.InnerXml = "<Method ID='1' Cmd='Update'><Field Name='ID'>" + $ItemID +
"</Field><Field Name='ImageCreateDate'>" + $lastModified +
"</Field><Field Name='FirstName'>" + $firstName +
"</Field><Field Name='LastName'>" + $lastName +
"</Field><Field Name='CardHolderID'>" + $chID +
"</Field><Field Name='EmployeeNumber'>" + $emplNumber +
"</Field></Method>"
$result = $proxy.UpdateListItems($listName, $batch)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55804 次 |
| 最近记录: |