Sharepoint开发中CAML的介绍

【转载】源地址: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计算的值。
UserSharePoint 网站的用户。
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 完整例子

查询标题为**的数据。

img

五. 总结

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值