拼写CAML查询的小工具

是不是感觉写一个CAML的查询有点麻烦? 尤其是在写复杂查询的时候. 在这里跟大家分享一个codeplex上的工具, 专门用来帮你拼CAML查询字符串的.

 

下载地址:

SharePoint CAML Helper

http://sharepointcamlhelper.codeplex.com/ 

 

使用步骤:

1. 下载CAMLHelper.dll

2. 新建一个C#的Console Application.

3. 添加对该dll的引用.

4. 粘贴下面的示例代码.

 

using System;
using System.Collections.Generic;
using System.Text;
using StooRob.CAMLHelper.CAML;

namespace CAMLHelperTest
{
    class Program
    {
        static void Main(string[] args)
        {
            CAMLManager target = new CAMLManager(
                new QueryGroup(
                    "Title", 
                    Types.FieldTypes.Text, 
                    Types.QueryTypes.Eq, 
                    "List Item Title"
                )
            );

            target.QueryGroups.Add(
                new QueryGroup(
                    Types.FieldRefTypes.ID, 
                    "{D562C8AC-457A-446b-84D6-2FA26FAABED7}", 
                    Types.FieldTypes.YesNo, 
                    Types.QueryTypes.Neq, 
                    "true"
                )
            );

            target.OrderBy.Add(new OrderBy("Title", false));

            target.ViewFields.Add(new ViewField("Title"));
            target.ViewFields.Add(
                new ViewField(
                    "{D562C8AC-457A-446b-84D6-2FA26FAABED7}", 
                    Types.FieldRefTypes.ID
                )
            );

            target.RowLimit = 100;

            string camlQuery = target.GetFullCAML();

            Console.WriteLine(camlQuery);
            Console.ReadLine();
        }
    }
}

 

程序输出结果(未整理):

<Where><And><Eq><FieldRef Name="Title" /><Value Type="Text">List Item Title</Val
ue></Eq><Neq><FieldRef ID="{D562C8AC-457A-446b-84D6-2FA26FAABED7}" /><Value Type
="YesNo">true</Value></Neq></And></Where><OrderBy><FieldRef Name="Title" Ascendi
ng="False" /></OrderBy><ViewFields><FieldRef Name="Title" /><FieldRef ID="{D562C
8AC-457A-446b-84D6-2FA26FAABED7}" /></ViewFields><RowLimit>100</RowLimit>

 

整理后看起来如下:

<Where>
  <And>
    <Eq>
      <FieldRef Name="Title" />
      <Value Type="Text">List Item Title</Value>
    </Eq>
    <Neq>
      <FieldRef ID="{D562C8AC-457A-446b-84D6-2FA26FAABED7}" />
      <Value Type="YesNo">true</Value>
    </Neq>
  </And>
</Where>
<OrderBy>
  <FieldRef Name="Title" Ascending="False" />
</OrderBy>
<ViewFields>
  <FieldRef Name="Title" />
  <FieldRef ID="{D562C8AC-457A-446b-84D6-2FA26FAABED7}" />
</ViewFields>
<RowLimit>100</RowLimit>

 

注: codeplex上有该工具的源代码. 可以供学习参考之用.

 

链接:

SharePoint CAML Helper

http://sharepointcamlhelper.codeplex.com/

posted on 2010-07-01 02:45  中道学友  阅读(982)  评论(2编辑  收藏  举报

导航

技术追求准确,态度积极向上