我正在尝试在Visual Basic中构建一个for循环,它将遍历sharepoint数据库列表中的每个项目,并阻止它继承其父项的权限。我得到一个Null Exception,因为我的查询对象为null。我已经搜索了,我发现的所有代码片段都没有为查询定义一个值,并且像我一样编写代码,为什么这是一个问题。
Imports System
Imports Microsoft.SharePoint.Client
Imports SP = Microsoft.SharePoint.Client
Module Module1
Sub Main()
Dim siteUrl As String = "https://cws1.conti.de/content/00009504"
Dim clientContext As New ClientContext(siteUrl)
Dim oList As List = clientContext.Web.Lists.GetByTitle("TestBI")
Dim query As CamlQuery
query.ViewXml = "<Where><Eq><FieldRef Name='Account' /><Value Type='Text'></Value></Eq></Where>"
Dim oListItems As ListItemCollection = oList.GetItems(query)
For numItems As Integer = 0 To 2
oListItems(numItems).BreakRoleInheritance(True, False)
Next
clientContext.ExecuteQuery()
End Sub
End Module
我之前从未编写VB,而且我不熟悉在Sharepoint上自动化任何东西,所以我真的很感激任何帮助。
答案 0 :(得分:0)
您需要先将对象的实例分配给查询变量,然后才能使用它。现在,您只声明一个变量。 改变这一行:
Dim query AS CamlQuery
到
Dim query AS new CamlQuery
此外,CamlQuery需要一个完整的<View>
标记。所以将你的CAML改为<View><Query><Where><Eq><FieldRef Name='Account' /><Value Type='Text'></Value></Eq></Where></Query></View>
,你应该好好去。
如果您希望从列表中检索所有项目,请使用CamlQuery.CreateAllItemsQuery()
方法。
Dim query AS CamlQuery = CamlQuery.CreateAllItemsQuery()