• SPSiteDataQuery and SPQuery


    SPSiteDataQuery 格式,其实下面的是很不规范的,只是让自己了解其真正的格式。以后会弄一个类来做这方面的工作
    <MatchingQuery> 
    <Lists><List ID="2DF16909-AEE4-44F0-BBF5-B6E5F33F7AD6" /></Lists> 
    <Webs Scope="SiteCollection" /> 
    <Query> 
    <OrderBy><FieldRef Name='ID'/></OrderBy> 
    <Where> 
    <And><And><And> 
    <IsNotNull><FieldRef Name="_x0030_03aab56_x002d_bb26_x002d_4815_x002d_83d2_x002d_335e857a36f8" /></IsNotNull> 
    <Eq><FieldRef Name="_x007b_634f940a_x002d_e3d8_x002d_47d3_x002d_998f_x002d_1f6cf85d6954_x007d_" /><Value Type="DateTime"><Today OffsetDays="1" /></Value></Eq> 
    </And> 
    <Or><Or> 
    <Eq><FieldRef Name="_x007b_b65db77a_x002d_0c3d_x002d_45fb_x002d_8a79_x002d_ab4ff9bca304_x007d_" /><Value Type="Text">Hire</Value></Eq> 
    <Eq><FieldRef Name="_x007b_b65db77a_x002d_0c3d_x002d_45fb_x002d_8a79_x002d_ab4ff9bca304_x007d_" /><Value Type="Text">Rehire</Value></Eq> 
    </Or> 
    <Eq><FieldRef Name="_x007b_b65db77a_x002d_0c3d_x002d_45fb_x002d_8a79_x002d_ab4ff9bca304_x007d_" /><Value Type="Text">Transfer</Value></Eq> 
    </Or> 
    </And> 
    <Or> 
    <Eq><FieldRef Name="_x007b_136c33c4_x002d_c3fa_x002d_457b_x002d_8640_x002d_06c403f596f2_x007d_" /><Value Type="Text">Notified</Value></Eq> 
    <Eq><FieldRef Name="_x007b_136c33c4_x002d_c3fa_x002d_457b_x002d_8640_x002d_06c403f596f2_x007d_" /><Value Type="Text">Processed</Value></Eq> 
    </Or></And> 
    </Where></Query> 
    <ViewFields><FieldRef Name="Company"/><FieldRef Name="Location"/><FieldRef Name="_x007b_b65db77a_x002d_0c3d_x002d_45fb_x002d_8a79_x002d_ab4ff9bca304_x007d_"/><FieldRef Name="FileRef"/><FieldRef Name="EncodedAbsUrl"/></ViewFields> 
    </MatchingQuery>
    


    操作:

    public SPSiteDataQuery MatchingQuery
            {
                get
                {
                    SPSiteDataQuery oQuery = null;
                    try
                    {
                        XmlNode xQuery = dJob.MatchingQuery;
                        oQuery = new SPSiteDataQuery();
                        //Changed to solve feature not installed issue.
                        //oQuery.Lists = "<Lists BaseType='1'/>";
                        oQuery.Lists = xQuery.SelectSingleNode("Lists").OuterXml;
                        oQuery.Webs = xQuery.SelectSingleNode("Webs").OuterXml;
                        oQuery.Query = xQuery.SelectSingleNode("Query").InnerXml;
                        oQuery.ViewFields = xQuery.SelectSingleNode("ViewFields").InnerXml;
                    }
                    catch (Exception ex)
                    {
                        Log.JobErrorWrite(Name, "Job: MatchingQuery", ex.ToString());
                    }
                    return oQuery;
                }
            }
    
    Applicator:
    
     private DataTable GetMatchItems(SPWeb Web)
            {
                DataTable DT = null;
                try
                {
                    SPSiteDataQuery oQuery = JobInfo.MatchingQuery;
                    DT = Web.GetSiteData(oQuery);
                }
                catch(Exception ex)
                {
                    Log.JobErrorWrite(Title, "Reminder: GetMatchItems", ex.ToString());
                }
                return DT;
            }
    

     SPQuery:

    SPQuery:
    public SPListItemCollection GetItems(SPList List, string QueryString)
    {
    SPQuery Query = null;
    SPListItemCollection ItemCollection = null;
    try
    {
    Query = new SPQuery();
    Query.Query = QueryString;
    ItemCollection = List.GetItems(Query);
    }
    catch (Exception ex)
    {
    Log.JobErrorWrite(_JobName, "ListOperator: GetItems", ex.ToString());
    }

    return ItemCollection;
    }

    Operator:
    string query = "<Where><Eq><FieldRef Name=\"JobStatus\" /><Value Type=\"Choice\">Activating</Value></Eq></Where>";
    ListOperator oListOperator = new ListOperator(string.Empty);
    SPListItemCollection ItemCollection = oListOperator.GetItems(list, query);

    OR

    SPQuery query = new SPQuery();
    query.Query = string.Concat(
    "<Where><Eq>",
    "<FieldRef Name='Status'/>",
    "<Value Type='CHOICE'>Not Started</Value>",
    "</Eq></Where>",
    "<OrderBy>",
    "<FieldRef Name='DueDate' Ascending='TRUE' />",
    "<FieldRef Name=’Priority’ Ascending='TRUE' />",
    "</OrderBy>");

    query.ViewFields = string.Concat(
    "<FieldRef Name='AssignedTo' />",
    "<FieldRef Name='LinkTitle' />",
    "<FieldRef Name='DueDate' />",
    "<FieldRef Name='Priority' />");

    // Get data from a list.
    string listUrl = web.ServerRelativeUrl + "/lists/tasks";
    SPList list = web.GetList(listUrl);
    SPListItemCollection items = list.GetItems(query);
  • 相关阅读:
    人工智能第一次作业
    在uni-app的textarea中输入纯数字或者英文不换行的问题
    uni-app实现选择图片上传并显示进度条
    减肥计划
    前端时间格式2020-02-11T12:24:18.000+0000转化成正常格式
    男孩和女孩
    java 获取当前年份 月份 日期
    深海收破烂
    如何爱一个人
    随手心情
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2234634.html
Copyright © 2020-2023  润新知