随笔 - 79  文章 - 1 评论 - 866 trackbacks - 111
<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

camlquery 类库下载:
 http://www.codeplex.com/camlquery
SPCAMLEditor 下载:
 http://www.codeplex.com/SPCAMLEditor

与我联系

搜索

 

留言簿(31)

我参与的团队

随笔分类(68)

My Friends

SilverLight

wss

积分与排名

  • 积分 - 101788
  • 排名 - 444

最新随笔

最新评论

阅读排行榜

评论排行榜


It's not a happy job to write caml query xml to return data from shrepoint list. So , I write the tool to make it easy.

the code example:

-------------------------
            using Microsoft.SharePoint;
            using CodeArt.SharePoint.CamlQuery;

            SPSite site = new SPSite("http://jyserver:81");

            SPList list = site.RootWeb.Lists["Notice"];

            QueryField field1 = new QueryField("标题",false); //the second parameter explain if the first parameter is a internal name.
            //or : QueryField field1 = new QueryField("Title"); //"Title" is a internal name.
           
            TypedQueryField<DateTime> field2 = new TypedQueryField<DateTime>("Expires");

            CamlExpression expr = field1.Contains("Test1");

            SPListItemCollection items =
                ListQuery.Select( field1)
                .From(list)
                .Where(expr)
                .OrderBy(field1)
                .GetItems();
               
           items =
                ListQuery.Select( field1)
                .From(list)
                .Where( field1..Contains("Test1") && field2 >= DateTime.Now.AddDays(-1)  )
                .OrderBy(field1)
                .GetItems();    
               
            items =
                ListQuery.Select( 10 , field1, field2 ) // limit result count.
                .From(list)
                .Where( field1..Contains("Test1") && field2 >= DateTime.Now.AddDays(-1)  )
                .OrderBy(field1)
                .GetItems();   
               
           items =
                ListQuery.Select( field1 , field2 )
                .From(list)
                .Where( field1..Contains("Test1") && field2 >= DateTime.Now.AddDays(-1)  )
                .OrderBy(field1,false)
                .OrderBy(field2,true) //
                .GetItems();    
               
You can download all source file from: http://www.codeplex.com/camlquery
or:http://www.codeplex.com/camlquery/Release/ProjectReleases.aspx
 
相关: WSS3.0开发--你还在为写CAML痛苦吗?


Tag标签: wss,moss,caml
posted on 2008-02-04 23:29 jianyi 阅读(683) 评论(8)  编辑 收藏 网摘 所属分类: Sharepoint

FeedBack:
#1楼  2008-03-17 17:51 eyes [未注册用户]
楼主,关于查询。。碰到个问题。。。
SPQuery query = new SPQuery();
query.ViewFields = "<FieldRef Name='_x95ee__x9898__x7c7b__x522b_'/>";
query.Query = @"<Query><Where><IsNotNull><FieldRef Name='_x95ee__x9898__x7c7b__x522b_'/></IsNotNull></Where></Query>";
SPListItemCollection items = buglist.GetItems(query);
然后用items.Count,调试的时候发现items的Count总是返回buglist的全部item的总数,如果我想获得上面query所得的item的总数应该怎么弄噢?
  回复  引用    
#2楼  2008-03-18 09:20 eyes [未注册用户]
问题解决了- -!
原来要把query.Query = @"<Query><Where><IsNotNull><FieldRef Name='_x95ee__x9898__x7c7b__x522b_'/></IsNotNull></Where></Query>";
改成
query.Query = @"<Where><IsNotNull><FieldRef Name='_x95ee__x9898__x7c7b__x522b_'/></IsNotNull></Where>";
但是看到网上很多例子都是加上<Query>这标签的。。。。
  回复  引用    
#3楼  2008-05-22 16:46 力克斯特      
请问下:您这个CodeArt.SharePoint.CamlQuery可以实现跨列表查询吗?
  回复  引用  查看    
#4楼 [楼主] 2008-05-22 20:21 jianyi      
@力克斯特
没跨表查询功能。
  回复  引用  查看    
#5楼  2008-09-05 10:18 lxrc [未注册用户]
如何在删除列表中的某一条目时能捕捉到这个删除事件,并能在其中写代码??也就是在点击条目上菜单中的“删除项目”时,在删除这一条目时,我能在删除这个事件中写入自己的一些代码??能实现吗?这样的功能??
  回复  引用    
#6楼 [楼主] 2008-09-06 09:40 jianyi      
@lxrc
利用事件接收器吧,里面有删除事件。google:MOSS 事件接收器
  回复  引用  查看    
#7楼  2009-01-06 14:15 Pegasus      
这个东西很好用,不过我发现一个问题,在 QueryField 和 TypedQueryField 这两个类中,LessThan方法和LessEqual方法的方法体好像写反了,你写的是 :

public CamlExpression LessThan(object value)
{
return CreateExpression(ComparisonOperators.LessEqual, value);
}
public CamlExpression LessEqual(object value)
{
return CreateExpression(ComparisonOperators.LessThan, value);
}

我觉得应该是:
public CamlExpression LessThan(object value)
{
return CreateExpression(ComparisonOperators.LessThan, value);
}
public CamlExpression LessEqual(object value)
{

return CreateExpression(ComparisonOperators.LessEqual, value);
}
  回复  引用  查看    
#8楼 [楼主] 2009-01-08 14:18 jianyi      
@Pegasus
嗯 ,是写错了,自己改改了~
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-08 21:32 编辑过
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:


相关搜索:
wss moss caml

相关链接: