SPQuery特殊運用(時間及文件庫類型)

來源:互聯網
上載者:User

大家應該常用到SPQuery來進行篩選MOSS列表中的內容.

最近用到時間篩選、存在檔案夾的文件庫內容(不是列表庫)篩選就出現部分問題。下面做個筆記。

首先我們溫習下SPQuery語句,用大家都熟悉的SQL文法來和它做個比較,如下表:

SPQuery SQL
<Where></Where> Where
<And></And> And
<Or></Or> Or
<Eq></Eq>   =
<Geq></Geq> >=
<Gt></Gt> >
<Leq></Leq> <=
<Lt></Lt> <
<Neq></Neq> !=
<IsNotNull></IsNotNull> !=null
<IsNull></IsNull> = null
<Contains><Contains> IN
<BeginWith></BeginWith> Like '開始資訊%'
<OrderBy></OrderBy> Order By

SPQuery中的時間篩選:

1、處理時間格式,通過SPUtility.CreateISO8601DateTimeFromSystemDateTime()將時間轉為 “yyyy-mm-ddThh:mm:ssZ”這個格式

2、進行時間比較,需要添加 IncludeTimeValue='TRUE'

SPQuery文件庫中的篩選:

    添加query.ViewAttributes = "Scope='Recursive'"  遍曆到文件庫中的所有檔案夾內容

 

下面以尋找昨天到現在修改的檔案為例,如下:

SPList list = web.Lists[DocListName]; 

string date = SPUtility.CreateISO8601DateTimeFromSystemDateTime(DateTime.Now.AddDays(-1));  //尋找昨天到現在修改的檔案
SPQuery query = new SPQuery();
query.Query = "<Where><Gt><FieldRef Name=\"Last_x0020_Modified\"/><Value Type=\"DateTime\" IncludeTimeValue='TRUE'>" + date + "</Value></Gt></Where>";
query.ViewAttributes = "Scope='Recursive'";      //設定範圍為遞迴,包含子檔案夾
SPListItemCollection items = list.GetItems(query);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.