当前位置: 首页 > news >正文

SharePoint : 使用SPQuery对象时要注意的事项

我们经常需要对一个列表进行查询,此时最灵活的方式就是直接使用SPQuery对象。这个对象的查询语法称为CAML。一般为了简单起见,我们会通过下面这样小工具先生成一个查询范例

image

我们可以看到查询文本大致如下

<Query>
   <Where>
      <Contains>
         <FieldRef Name='_x6d4b__x8bd5_' />
         <Value Type='Text'>chenxizhang</Value>
      </Contains>
   </Where>
</Query>

 

点击"Test"之后,可以看到如下效果

image

下面,我们就很自然地想到将这个查询文本用于我们自己的SPQuery对象

SPSite site = new SPSite("http://localhost:8080");
SPWeb web = site.OpenWeb();

SPList list = web.Lists["测试文档库"];
SPQuery q = new SPQuery();
q.Query = string.Format("<Query><Where><Contains><FieldRef Name='{0}' /><Value Type='Text'>{1}</Value></Contains></Where></Query>", "_x6d4b__x8bd5_", "chenxizhang");

q.ViewFields = list.DefaultView.ViewFields.SchemaXml;

foreach (SPListItem item in list.GetItems(q))
{
    Console.WriteLine(item.ID);
}

Console.WriteLine("完成查询");

 

 

以上代码看似很正常,但很奇怪的是,查询似乎没有起作用,因为它总是返回文档库全部的ListItem

经过检查和确认,一定要将<Query>这个根元素拿掉,才可以生效。所以这是典型的由工具产生的误导啊

相关文章:

  • Linux 上安装JDK
  • JUnit-4.13使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
  • vi和vim的基本介绍
  • 流程理解篇-测试篇
  • 简单贪心题(看最多的电视节目)
  • TestDriven.NET 2.0单元测试
  • Spring Boot 2.x (十二):Swagger2的正确玩儿法
  • windows环境下memcache服务器使用经验
  • DIVCNT23 - Counting Divisors
  • 新的博客, 新的里程
  • [学习笔记]Dsu On Tree
  • ExtJS里的Xtype的对应组件
  • 我做SAP CRM One Order redesign的一些心得体会
  • 解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【亲测有效】...
  • 设计模式笔记(4)---生成器模式(创建型)
  • 深入了解以太坊
  • SegmentFault for Android 3.0 发布
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 77. Combinations
  • Angular Elements 及其运作原理
  • Create React App 使用
  • interface和setter,getter
  • javascript 总结(常用工具类的封装)
  • Javascript编码规范
  • js正则,这点儿就够用了
  • Magento 1.x 中文订单打印乱码
  • node学习系列之简单文件上传
  • passportjs 源码分析
  • Python连接Oracle
  • React-flux杂记
  • Spark RDD学习: aggregate函数
  • webpack入门学习手记(二)
  • windows下如何用phpstorm同步测试服务器
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 老板让我十分钟上手nx-admin
  • 山寨一个 Promise
  • 设计模式(12)迭代器模式(讲解+应用)
  • 我的面试准备过程--容器(更新中)
  • 用Canvas画一棵二叉树
  • 终端用户监控:真实用户监控还是模拟监控?
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 如何用纯 CSS 创作一个货车 loader
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​2020 年大前端技术趋势解读
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #laravel 通过手动安装依赖PHPExcel#
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.ajax()
  • (06)Hive——正则表达式
  • (11)MATLAB PCA+SVM 人脸识别