MOSS CAML(1)基础语法及我开发的一个简单例子

139 篇文章 1 订阅

CAML: Collaborative Application Markup Language

    我一般使用会用一个生成器代码,生成caml语句

1. 基本格式
这个功能上类似于SQL,从表单中提炼数据。不过是XML格式。如果拿它同SQL比较,CAML繁琐冗长,而且功能也较弱。基本格式如下:
<Query>
<Where>
<Eq>
<FieldRef Name="Colum1" />
<Value Type="TypeName">Toronto</Value>
</Eq>
</Where>
<OrderBy>
<FieldRef Name="Colum2" />
<FieldRef Name = "Column3" />
</OrderBy>
</Query>

Where语句里边写的是条件语句。Orderby是列名。

Where的子语句可以是Contains, Eq, Geq, Dt, Leq, Lt, Neq, DateRangesOverlap, IsNotNull, IsNull,这些的作用就是SQL里头的等号,大于号,小于号等等。然后再列上比较的内容。

有两种 FieldRef和Value。FieldRef 有一个属性叫Name,就是列名,Value有一个属性叫Type,后面有个值放在大于号和小于号之间。

Where语句的第一层子语句还可以是And,这样在里边可以写好几个不同的条件。EQ, GEQ这些就会被挪到下一层去。

2. 调用CAML

首先需要使用SharePoint API,就是

using Microsoft.SharePoint;
其次,从SPSite,SPWeb,SPList,SPQuery 一级级走下来,SPQuery有个属性叫Query,直接把上面的字符串放进去即可。

第三,Query结束后,生成一个SPListItemCollection的Object,用Foreach一个个看即可,里边每个元素叫SPListItem

我写的 。net代码

为了测试获得数据比较方便,我直接用datatable做为接收数据。

  using (SPSite site = new SPSite(SPContext.Current.Site.ID))
            {
                using (SPWeb myweb = site.OpenWeb("ListDBcenter"))
                {
                    SPList list = myweb.Lists["List_officesupply"];
                    SPQuery myquery = new SPQuery();
                    myquery.Query = string.Format("<Where><Eq><FieldRef Name='ItmeID'/><Value Type='Text'>f6a1c5a0-9fdc-4d97-a937-23c350873b4d</Value></Eq></Where>");
                    
                    DataTable getDT = list.GetItems(myquery).GetDataTable();
                    GridViewFeeList.DataSource = getDT;
                    GridViewFeeList.DataBind();
                }
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值