2011-05-24 102 views
0

我有一个列有三列1)Title,2)LoginUser 3)ParentSiteAccess。如果一个特定的用户登录,那么我需要获取第三列的值(即ParentSiteAccess)。 我正在使用下面的查询来获取它。使用CAML查询在sharepoint中查询列表项

query.Query = @"<Where><Eq><FieldRef Name='LoginUser'/><Value Type='Text'>" + userName + "</Value></Eq></Where>"; 
        query.ViewFields = "<FieldRef name='ParentSiteAccess'/><FieldRef name='LoginUser'/>"; 
        query.ViewFieldsOnly = true; 

但我没有得到这种方法。任何人都可以给我一个有效的解决方案?

+0

“LoginUser”真的是文本字段吗?或者它是一个人们选择领域?仅限 – CBono 2011-05-24 18:26:42

+0

文本字段。 – 2011-05-25 05:32:36

回答

1

您的查询格式良好,但无法访问您的环境,因此调试起来非常困难。一个常见的问题是列的显示名称与内部名称不匹配。

我可以告诉你的最好的事情是得到一个方便的免费程序U2U CAML Query Builder的副本。 2007版可与SP 2010配合使用。

如果您与SharePoint安装不在同一个框中,请使用“SharePoint Web Services”进行连接。如果你是,“对象模型”或“Web服务”选项将起作用。

登录后,指向您的列表并使用UI构建查询。最好的事情是你可以通过显示名称选择列,但是它使用内部名称构建查询。这是快速实验查询并获得有关返回信息的快速反馈。

当你得到一个有效的查询时,只需将它从实用程序的窗口中复制到代码中。