使用CAML查询在sharepoint中查询列表项



我有一个包含三列的列表1)标题,2)登录用户3)ParentSiteAccess。如果某个特定用户登录,那么我需要获取第三列(即ParentSiteAccess)的值。我正在使用下面的查询来获取它。

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;

但我不同意这种做法。有人能给我一个有效的解决方案吗?

您的查询看起来格式良好,但如果不能访问您的环境,则很难进行调试。一个常见的问题是列的显示名称与其内部名称不匹配。

我能告诉你的最好的事情是获得一个方便的免费程序U2U CAML查询生成器的副本。2007版本与SP 2010配合使用效果良好。

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

登录后,指向您的列表并使用UI构建查询。它最好的一点是,您可以根据列的显示名称来选择列,但它使用列的内部名称来构建查询。这是一种快速的方法,可以对查询进行实验,并立即获得关于其返回内容的反馈。

当您得到一个有效的查询时,只需将其从实用工具的窗口复制到代码中即可。

最新更新