【转载】源地址:https://www.cnblogs.com/gzhr/p/10750859.html

一. 前言

在SharePoint中,不支持直接操作数据库,但开发过程中,避免不了查询数据,那么,在SharePoint中如何查询数据?

当然是使用CAML语法。

二. 目录

\1. 什么是CAML

\2. 如何使用CAML查询数据

3.1 如何通过知识分享模板创建分享文章

3.2 筛选条件

3.3 逻辑运算

3.4排序条件

3.5返回字段

3.6查询范围

3.7字段类型

3.8完整例子

4.总结

三. 什么是CAML

协作应用程序标记语言 (CAML) 是一种基于 XML 的语言。

在SharePoint使用此语言描述对列表的查询,同时也描述字段类型定义、站点模板定义等。

在SharePoint开发中,基本都包含数据查询,根据某些筛选、排序条件,查询某个列表条目的集合。

四. 如何使用CAML查询数据

4.1 筛选条件

操作符 备注
Eq 等于
Neq 不等于
Lt 小于
Leq 小于等于
Gt 大于
Geq 大于等于
Contains 包含
BeginsWith 以某字符串开头
In 在集合范围内
IsNull 为空,
IsNotNull 不为空
Membership 属于用户组
User 用户
Boolean 是否,值(1是,0否)
_ModerationStatus 批准,0已批准,1已拒绝,2待定

4.2 逻辑运算

在CAML中也支持多个查询条件的逻辑组合,支持“与”和“或”,但是不支持“非”。通过和标签进行逻辑运算。

不过需要特别声明的是,And标签和Or标签内部,只能使用两个查询条件。

And标签和Or标签内部,只能使用两个查询条件,需要3个条件,则需要改成And嵌套And

Value

Value

Value

4.3 排序条件

使用指定排序条件。

查询条件中每个字段按照排列的顺序依次为首要查询条件、次要查询条件:

其中的Name属性同样必须使用内部名称,Ascending指定升序或者降序,则默认升序。

4.4 返回字段

考虑到查询性能,需要指定返回字段,不指定则返回所有字段。指定返回字段的方式使用的形式。

例如,如果需要返回标题、ID字段,则写法为:

4.5 查询范围

ViewAttributes = “Scope=‘FilesOnly’”

Scope=‘Default’ : 只查询指定文件夾下的项目及子文件夾

Scope=‘FilesOnly’ : 只查询指定文件夾下的项目

Scope=‘Recursive’ : 查询所有项目,不查询文件夾

Scope=‘RecursiveAll’ : 查询所有项目和所有子文件夾

4.6 字段类型

使用CAML语法查询列表数据,需要指定字段类型,不同的字段类型,CAML语法也不一样。下面列出常用的字段类型以及常用的常用类型的查询方式。

成员名称 说明
Integer 正整数或负整数值。
Text 单行文本。
DateTime 日期和时间值。
Counter 内部 ID 字段的整数
Choice 选项值。
Lookup 其他列表中的值对的引用。
Boolean 数据库中存储为1或0的布尔值。。
Number 浮点数。
Currency 在特定区域设置基于货币值的格式。
URL 超链接。
Calculated 计算的值。
User SharePoint 网站的用户。
ModStat 内容审批状态。

4.6.1 Integer

12

4.6.2 T****ext

测试

4.6.3 Boolean

True

1

False

<FieldRef Name='IsEnd />0

4.6.4 Url

例如:http://sp/managedpath/spwebOrSitecollectionname,需要用相对地址

​ /managedpath/spwebOrSitecollectionname

4.6.5 Calculated

这里的Type取值为SPFieldCalculated.OutputType

Rafael

4.6.6 Counter

66

4.6.7 User

根据用户ID查询

31"

4.6.8 F****older

如果是文件,则FSObjType的值为0

1

4.6.9 D****ate

默认情况下,对于时间和日期类型的查询只精确到日期,如果需要精确到时间:

2009-10-08T17:48:37Z

(其中的日期格式可以通过使用一个静态方法SPUtility.CreateISO8601DateTimeFromSystemDateTime转换得到)

4.6.10 L****ookup

如果查询的字段类别是lookup,指定值的时候可以指定具体值也可以指定ID,如果需要指定ID,需要在FieldRef元素里指定LookupId为true

<FieldRef Name='CFRefTitle />

测试

或者

11

4.6.11 I****sNull

4.6.12 Is****NotNull

< IsNotNull> </ IsNotNull>

4.6.13 ModStat

0

4.7 完整例子

查询标题为**的数据。

五. 总结

本文主要介绍了如何使用CAML查询数据,只有掌握它,才能更好地进行SharePoint开发。

在编写CAML字符串的时候,需要特别注意Xml标签的大小写是敏感的。

CAML语法,以Xml的形式进行标准化,便于计算机的解析和阅读,相比SQL而言,也更加安全,不用担心SQL注入。

要说CAML的地位就相当于SQL在网站中的地位一样,使你不得不去熟悉它。

Sharepoint开发中CAML的介绍相关推荐

  1. SharePoint开发中怎样使用Visual Studio给你的Web Part加入图标

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/36051545 SharePoint开发中怎样 ...

  2. 游戏开发中的物理介绍

    游戏开发中的物理介绍 碰撞对象 物理过程回调 碰撞层和蒙版 GUI示例 代码示例 Area2D StaticBody2D RigidBody2D KinematicBody2D 在游戏开发中,您通常需 ...

  3. 【转】SharePoint开发中可能用到的各种Context(上下文)

    第一部分 服务器端上下文 一.HttpContext 这个--我想就不用再介绍了,SharePoint运行在标准的ASP.NET框架下(2003用的不是标准的ASP.NET 1.1,不过这年头还有人用 ...

  4. Unity游戏开发中ECS思想介绍

    ECS是啥? ECS是一种编程思想,和传统的面向对象有区别 有一篇文章说的挺好,大家可以看看,这里只简要概括一下! 浅谈<守望先锋>中的ECS架构 ECS: E(Entity)实体 C(C ...

  5. iOS 开发中的MVVM介绍(译)

    本文译自 :Introduction to MVVM  by Ash Furrow 2011年, 我在500px得到了第一份iOS相关的工作. 之前几年我在大学的时候就做过iOS的项目,但是,这是我第 ...

  6. android开发中像素单位介绍

    开发android应用的时候,第一步需要考虑界面布局.布局就是要设置界面及控件的大小,涉及到几个像素单位(px,大dip,dp,sp,pt),需要有基本的了解. dip:device independ ...

  7. 了解 SharePoint 2010 开发中的关键点

    **摘要:**了解为 Microsoft SharePoint 2010 规划和开发业务解决方案时必须做出的关键点. 上次修改时间: 2012年3月13日 适用范围: Business Connect ...

  8. Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理

    Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理 This time I want to talk ...

  9. 初学者Web介绍一些前端开发中的基本概念用到的技术

    Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...

  10. Visual Studio 2010 中的 SharePoint 开发

    Chai同学已经在他的blog上贴了文章,讲述VS2010中,针对SharePoint开发的一些增强.虽说VS2010还有一点点远,但是先了解一下也是不错的.嗯,在VS2008上,应该至少还会发布一个 ...

最新文章

  1. CoordinatorLayout 使用及源码解析
  2. sutton 强化学习 中文版pdf_互联网数据驱动力简书-《数据推动力-创造数据文化》免费pdf分享...
  3. axure 画小程序效果图_APP详情页如何用Axure画出来
  4. 用MVC来实现javaScript的时间效果
  5. Linux——vim编辑器详解
  6. sql server 登录与用户绑定
  7. 第三代计算机硬件特点是,第三代计算机的特征.doc
  8. 自主品牌语音交互性能测评,荣威RX5反应更快,博越变暖男
  9. 【Android开发】Android 颜色透明度换算
  10. php flea,FleaPHP - 开发框架 - PHP开源网(PHP-OPEN.ORG)
  11. Java回调函数callback
  12. 程序员的高效工作环境
  13. 固态移动硬盘安装linux,如何在移动硬盘上安装Ubuntu系统(1)
  14. 「网络安全」安全设备篇(3)——IPS
  15. MFC的导航窗格浮窗设计
  16. Seastar源码阅读(三)future
  17. WMS系统后端开发-货位管理
  18. 插入排序及其稳定性介绍
  19. frontpage 2003动态html效果,FrontPage 2003网页编辑小技巧
  20. 使用Python实现从CAD中选择多段线并提取坐标

热门文章

  1. 20155304《网络对抗》信息搜集与漏洞扫描
  2. 一个简单的Perl脚本求单条序列的GC含量
  3. Linux中du命令使用方法
  4. 课程作业练习 K均值聚类 python实现(最小误差平方和准则)
  5. 虚拟交换系统 (VSS)
  6. 汇编 fsub ,fmul,fdiv,fild,CVTTPS2PI 指令
  7. python3 extract_model.py对应代码解读抽取式提取+生成式提取摘要代码解读------摘要代码解读3
  8. foxmai邮件服务器pop,常见pop和stmp服务器地址-foxmail6或outlook邮件管理
  9. 坐标求四面体体积_「体积公式」四面体体积公式 - seo实验室
  10. matlab 中的textscan