首页 新闻 会员 周边

sharepoint caml语句问题

0
悬赏园豆:100 [已解决问题] 解决于 2012-05-30 18:36

我在使用caml语句查询文档库的时候,一直没查询到相应的结果,请问这是为什么?

这是我的后台代码

SPList list = web.Lists["项目文档"];//取得站点中某个库

SPQuery query = new SPQuery();
query.Query = @"<Query><Where><Eq><FieldRef Name='ID' /><Value Type='Integer'>2249</Value></Eq></Where></Query>";

query.ViewAttributes = "Scope='Recursive'"; //设置范围为递归,包含子文件夹

SPListItemCollection lists = list.GetItems(query);

SPListItem item = lists[0];

//string a = item.Fields["ows_ID"].ToString();

 

这是我调试时候item的xml参数

<z:row xmlns:z='#RowsetSchema' ows_ID='12' ows_ContentTypeId='0x01010011EA2AC3DFD2AF40B5274A47AC9E8BDE' ows_ContentType='Word文档' ows_Created='2011-11-16 14:32:09' ows_Author='128;#Y严豪' ows_Modified='2011-11-16 16:30:54' ows_Editor='1073741823;#系统帐户' ows__ModerationStatus='0' ows_FileRef='12;#PWA/RDMP研发管理平台/Project Documents/03 技术资料/2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_FileDirRef='12;#PWA/RDMP研发管理平台/Project Documents/03 技术资料' ows_Last_x0020_Modified='12;#2011-11-16 16:30:53' ows_Created_x0020_Date='12;#2011-11-16 14:32:09' ows_File_x0020_Size='12;#2417777' ows_FSObjType='12;#0' ows_SortBehavior='12;#0' ows_PermMask='0x7fffffffffffffff' ows_CheckedOutUserId='12;#' ows_IsCheckedoutToLocal='12;#0' ows_FileLeafRef='12;#2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_UniqueId='12;#{E2BECE57-EB94-4A8D-B5E0-385B1A7F70F7}' ows_ProgId='12;#' ows_ScopeId='12;#{E62017AE-D64C-4E40-818C-0678220D4CCC}' ows_VirusStatus='12;#2417777' ows_CheckedOutTitle='12;#' ows__CheckinComment='12;#' ows_Modified_x0020_By='SHAREPOINT\system' ows_Created_x0020_By='HELC\yh04839' ows_File_x0020_Type='docx' ows__EditMenuTableStart='2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows__EditMenuTableStart2='12' ows__EditMenuTableEnd='12' ows_LinkFilenameNoMenu='2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_LinkFilename='2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_LinkFilename2='2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_DocIcon='docx' ows_ServerUrl='/PWA/RDMP研发管理平台/Project Documents/03 技术资料/2011-11-11_HEDS_SSMS_升级方案 V1.0.docx' ows_EncodedAbsUrl='http://rdmp-test.hitachi-helc.com/PWA/RDMP研发管理平台/Project%20Documents/03%20技术资料/2011-11-11_HEDS_SSMS_升级方案%20V1.0.docx' ows_BaseName='2011-11-11_HEDS_SSMS_升级方案 V1.0' ows_FileSizeDisplay='2417777' ows_MetaInfo='12;#vti_contentversionisdirty:BW|false&#13;&#10;vti_thumbnailexists:BW|false&#13;&#10;vti_parserversion:SR|14.0.0.6029&#13;&#10;vti_contenttag:SW|{E2BECE57-EB94-4A8D-B5E0-385B1A7F70F7},4,11&#13;&#10;_Category:EW|&#13;&#10;Links:LW|&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;Result&gt;&lt;NewXML&gt;&lt;PWSLinkDataSet xmlns=&quot;http://schemas.microsoft.com/office/project/server/webservices/PWSLinkDataSet/&quot;&gt;&lt;LinkedItems xmlns=&quot;&quot;&gt;&lt;UniqueId&gt;79ff6457-bc99-429e-8c05-04ac537eb5e4&lt;/UniqueId&gt;&lt;ID&gt;12&lt;/ID&gt;&lt;ListID&gt;00000000-0000-0000-0000-000000000000&lt;/ListID&gt;&lt;Title&gt;第三阶段遗留问题跟进&lt;/Title&gt;&lt;Link&gt;1&lt;/Link&gt;&lt;LinkType&gt;8&lt;/LinkType&gt;&lt;/LinkedItems&gt;&lt;LinkedItems xmlns=&quot;&quot;&gt;&lt;UniqueId&gt;257b82cd-74cd-438d-b48a-cf5c9448189c&lt;/UniqueId&gt;&lt;ID&gt;12&lt;/ID&gt;&lt;ListID&gt;00000000-0000-0000-0000-000000000000&lt;/ListID&gt;&lt;Title&gt;与询单系统集成&lt;/Title&gt;&lt;Link&gt;1&lt;/Link&gt;&lt;LinkType&gt;8&lt;/LinkType&gt;&lt;/LinkedItems&gt;&lt;/PWSLinkDataSet&gt;&lt;/NewXML&gt;&lt;ProjectUID&gt;8d5560fe-f1ea-4616-b1ad-90b082502c28&lt;/ProjectUID&gt;&lt;OldXML&gt;&lt;PWSLinkDataSet xmlns=&quot;http://schemas.microsoft.com/office/project/server/webservices/PWSLinkDataSet/&quot; /&gt;&lt;/OldXML&gt;&lt;ItemType&gt;3&lt;/ItemType&gt;&lt;PSURL&gt;http://rdmp.hitachi-helc.com/pwa&lt;/PSURL&gt;&lt;/Result&gt;&#13;&#10;vti_stickycachedpluggableparserprops:VX|Subject PLM编号 文档类别 上传标识 密级 文档状态 Keywords _Status Owner 技表号 vti_title _Author _Category ContentType ContentTypeId Links _Comments Status 项目号&#13;&#10;vti_author:SR|HELC\\yh04839&#13;&#10;display_urn\:schemas-microsoft-com\:office\:office#Owner:SW|Y严豪&#13;&#10;项目号:SW|RDC1102&#13;&#10;vti_previewexists:BW|false&#13;&#10;密级:EW|&#13;&#10;文档状态:SW|(1)草稿&#13;&#10;文档类别:SW|(3)参考资料&#13;&#10;上传标识:SW|(2)空值&#13;&#10;Keywords:EW|&#13;&#10;_Status:EW|&#13;&#10;vti_modifiedby:SR|SHAREPOINT\\system&#13;&#10;技表号:EW|&#13;&#10;Owner:SW|128;#Y严豪&#13;&#10;vti_foldersubfolderitemcount:IR|0&#13;&#10;vti_docstoreversion:IR|4&#13;&#10;vti_metainfoversion:IW|5&#13;&#10;vti_title:SW|2011-11-11_HEDS_SSMS_升级方案&#13;&#10;_Author:SW|于强&#13;&#10;ContentType:EW|&#13;&#10;ContentTypeId:LW|0x01010011EA2AC3DFD2AF40B5274A47AC9E8BDE&#13;&#10;vti_sourcecontrolmultiuserchkoutby:VR|HELC\\\\yh04839&#13;&#10;_Comments:EW|&#13;&#10;Status:SW|草稿&#13;&#10;Subject:EW|&#13;&#10;PLM编号:EW|&#13;&#10;vti_folderitemcount:IR|0&#13;&#10;' ows__Level='1' ows__IsCurrentVersion='1' ows_ItemChildCount='12;#0' ows_FolderChildCount='12;#0' ows_SelectTitle='12' ows_SelectFilename='12' ows_Edit='0' ows_owshiddenversion='4' ows__UIVersion='512' ows__UIVersionString='1.0' ows_Order='1200.00000000000' ows_GUID='{7C891A69-538B-491E-ABC0-05AE1B60B2C3}' ows_WorkflowVersion='1' ows_ParentVersionString='12;#' ows_ParentLeafName='12;#' Etag="{E2BECE57-EB94-4A8D-B5E0-385B1A7F70F7},4" ows_Title='2011-11-11_HEDS_SSMS_升级方案' ows_c000_Combine='0' ows_c000_RepairDocument='0' ows__x6587__x6863__x7c7b__x522b_='(3)参考资料' ows__x9879__x76ee__x53f7_='RDC1102' ows_Combine='0' ows_RepairDocument='0' ows_ServerRedirected='0'/>

我想通过ows_ID去查询对应结果。

鳄鱼的眼泪的主页 鳄鱼的眼泪 | 初学一级 | 园豆:110
提问于:2012-03-13 18:58
< >
分享
最佳答案
1

query.Query = @"<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>2249</Value></Eq></Where>"; 试试看。

收获园豆:100
凉风ing | 菜鸟二级 |园豆:332 | 2012-03-14 17:00
其他回答(3)
0

用XPath去查询

az235 | 园豆:8483 (大侠五级) | 2012-03-14 08:31

我只想用caml,本来这个用循环就搞定了,现在我要性能高点的查询,caml最好了。

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-03-14 22:05
0

把CAML里的 <Query></Query>去掉... 你是从 CAMLBuilder那货里直接复制粘贴出来的么,呵呵

山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-14 18:14

最首先是没有<Query></Query>,测试不成功所以才加上继续测试的。去掉<Query></Query>没用。

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-03-14 20:26

@鳄鱼的眼泪: 是item.Fields["ows_ID"]没有值还是 Collection没有值?

支持(0) 反对(0) 山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-15 09:51

@鳄鱼的眼泪: 

1. 把<Value Type='Integer'>2249</Value> 中的 Integer 改为 Counter?这个... 算了吧...

2. 如果把 query.ViewAttributes = "Scope='Recursive'"; 注释掉后,查询在根文件夹下的项目能不能有值?

3. ItemID为 2249 的那个项目还存在么?

另,item.Fields["ows_ID"]应该用 item.Fields["ID"]或 item.ID

支持(0) 反对(0) 山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-15 10:28

@山坡上的牧羊人: item.ID是有值的,就是那个2249,但用这个作为条件没出来相应的结果

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-03-21 10:06

@鳄鱼的眼泪: 用 CamlBuilder 试过吗?一个构造 Caml语句的工具

支持(0) 反对(0) 山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-21 13:36

@山坡上的牧羊人: 用CamlBuilder查找了一下,发现真的是类型写错了。正确的语句如下:

<Where><Eq><FieldRef Name='ID' /><Value Type='Counter'>2249</Value></Eq></Where>

真如@凉风耗耗 所说啊,没有CamlBuilder都不知道是什么类型,这个真乱啊。不过感谢你们2位,总算是解决了。

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-03-30 16:15

@鳄鱼的眼泪: 奇怪... 之前我用 CAMLBuilder试了一下,在我本地用 Counter或 Integer都可以... 话说,拖了这么久,你经理不急么?哈哈

支持(0) 反对(0) 山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-31 09:21

@山坡上的牧羊人: 我已经用for循环做完了,感觉性能还行,而且也经过系统的测试过了,所以不想再改用caml语句写了,就这样运行吧。我只是想搞清楚为什么一直之前用caml语句没得到相应的结果。

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-03-31 13:46

@鳄鱼的眼泪: 哪天接手你代码的那个人,看到这段代码估计会很无奈吧... 哈哈... 不过这么写确实不是好习惯... CAML的query语句其实不难,多用用 CamlBuilder就习惯了。

支持(0) 反对(0) 山坡上的牧羊人 | 园豆:198 (初学一级) | 2012-03-31 18:37
0

问题解决就把悬赏园豆给别人啊。他们不好意思说,我替他们表达表达。呵呵!

向振文 | 园豆:206 (菜鸟二级) | 2012-05-30 16:38

哦,忘记了。

支持(0) 反对(0) 鳄鱼的眼泪 | 园豆:110 (初学一级) | 2012-05-30 18:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册