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 | 计算的值。 |
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的介绍相关推荐
- SharePoint开发中怎样使用Visual Studio给你的Web Part加入图标
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u012025054/article/details/36051545 SharePoint开发中怎样 ...
- 游戏开发中的物理介绍
游戏开发中的物理介绍 碰撞对象 物理过程回调 碰撞层和蒙版 GUI示例 代码示例 Area2D StaticBody2D RigidBody2D KinematicBody2D 在游戏开发中,您通常需 ...
- 【转】SharePoint开发中可能用到的各种Context(上下文)
第一部分 服务器端上下文 一.HttpContext 这个--我想就不用再介绍了,SharePoint运行在标准的ASP.NET框架下(2003用的不是标准的ASP.NET 1.1,不过这年头还有人用 ...
- Unity游戏开发中ECS思想介绍
ECS是啥? ECS是一种编程思想,和传统的面向对象有区别 有一篇文章说的挺好,大家可以看看,这里只简要概括一下! 浅谈<守望先锋>中的ECS架构 ECS: E(Entity)实体 C(C ...
- iOS 开发中的MVVM介绍(译)
本文译自 :Introduction to MVVM by Ash Furrow 2011年, 我在500px得到了第一份iOS相关的工作. 之前几年我在大学的时候就做过iOS的项目,但是,这是我第 ...
- android开发中像素单位介绍
开发android应用的时候,第一步需要考虑界面布局.布局就是要设置界面及控件的大小,涉及到几个像素单位(px,大dip,dp,sp,pt),需要有基本的了解. dip:device independ ...
- 了解 SharePoint 2010 开发中的关键点
**摘要:**了解为 Microsoft SharePoint 2010 规划和开发业务解决方案时必须做出的关键点. 上次修改时间: 2012年3月13日 适用范围: Business Connect ...
- Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理
Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理 This time I want to talk ...
- 初学者Web介绍一些前端开发中的基本概念用到的技术
Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...
- Visual Studio 2010 中的 SharePoint 开发
Chai同学已经在他的blog上贴了文章,讲述VS2010中,针对SharePoint开发的一些增强.虽说VS2010还有一点点远,但是先了解一下也是不错的.嗯,在VS2008上,应该至少还会发布一个 ...
最新文章
- CoordinatorLayout 使用及源码解析
- sutton 强化学习 中文版pdf_互联网数据驱动力简书-《数据推动力-创造数据文化》免费pdf分享...
- axure 画小程序效果图_APP详情页如何用Axure画出来
- 用MVC来实现javaScript的时间效果
- Linux——vim编辑器详解
- sql server 登录与用户绑定
- 第三代计算机硬件特点是,第三代计算机的特征.doc
- 自主品牌语音交互性能测评,荣威RX5反应更快,博越变暖男
- 【Android开发】Android 颜色透明度换算
- php flea,FleaPHP - 开发框架 - PHP开源网(PHP-OPEN.ORG)
- Java回调函数callback
- 程序员的高效工作环境
- 固态移动硬盘安装linux,如何在移动硬盘上安装Ubuntu系统(1)
- 「网络安全」安全设备篇(3)——IPS
- MFC的导航窗格浮窗设计
- Seastar源码阅读(三)future
- WMS系统后端开发-货位管理
- 插入排序及其稳定性介绍
- frontpage 2003动态html效果,FrontPage 2003网页编辑小技巧
- 使用Python实现从CAD中选择多段线并提取坐标
热门文章
- 20155304《网络对抗》信息搜集与漏洞扫描
- 一个简单的Perl脚本求单条序列的GC含量
- Linux中du命令使用方法
- 课程作业练习 K均值聚类 python实现(最小误差平方和准则)
- 虚拟交换系统 (VSS)
- 汇编 fsub ,fmul,fdiv,fild,CVTTPS2PI 指令
- python3 extract_model.py对应代码解读抽取式提取+生成式提取摘要代码解读------摘要代码解读3
- foxmai邮件服务器pop,常见pop和stmp服务器地址-foxmail6或outlook邮件管理
- 坐标求四面体体积_「体积公式」四面体体积公式 - seo实验室
- matlab 中的textscan