SharePoint 2013 列表多表聯合查詢

2022-01-29 19:18:05 字數 2573 閱讀 1969

在sharepoint的企業應用中,遇到複雜的邏輯的時候,我們會需要多表查詢;sharepoint和sql資料表一樣,也支援多表聯合查詢,但是不像sql語句那樣簡單,需要使用spquery的joins屬性來完成。

下面,我們通過乙個簡單的例子,為大家演示一下如何使用spquery通過查閱項字段來進行兩個列表的聯合查詢。

1、首先建立測試列表,city是城市,然後有乙個列表叫做address,是位址,通過查閱項location進行關聯,cityid欄位是number型別,這裡代表城市的id號;

建立列表完畢以後,輸入一些簡單的測試資料,如下圖:

2、測試列表address,新增乙個查閱項欄位,特別要說的是,截圖勾選了title,後來因為查閱項關聯的就是title,我就去掉了,希望不要對後來造成誤會,如下圖:

3、檢視建立完畢列表的所有欄,如下圖:

4、看著location:cityid這樣的名稱不是很舒服,索性點進去,改名,如下圖:

5、如下圖,便是我們建立完畢的測試列表,包含簡單的測試資料:

6、建立乙個控制台程式,引用microsoft.sharepoint.dll,編寫測試**,因為控制台程式的建立過程非常簡單,這裡只貼了核心**,如下:

1

using (spsite site = new

spsite(siteurl))229

}30 }

7、執行控制台程式,下面是查詢的結果,如下圖:

到這裡,大家可能會有疑問,這樣的查詢,和列表的查詢是一樣的,怎麼叫做多列表聯合查詢呢?下面請繼續,聽我慢慢道來;

8、我們在列表city裡多新增一列,名稱暫且叫做mark,但是不將其作為查閱項關聯到address列表,如下圖:

address列表所有欄屬性,並不包含mark,如下圖:

9、同時為**的projectedfields多新增mark的字段屬性,如下圖:

query.projectedfields =

"";

10、同時為顯示屬性加入custommark欄位,如下圖:

query.viewfields = "

" + "

" + "

" +"";

輸出新增custommark欄位的值,如下:

spfieldlookupvalue custommark = new spfieldlookupvalue(item["

custommark

"].tostring());

console.writeline(

"custommark:

" + custommark.lookupvalue)

11、再次執行控制台程式,並沒有以查閱項關聯到address的mark欄位,也被查詢出來了,也就是我們說的多表聯合查詢,如下圖:

以上內容,就是本文的全部內容,sharepoint多表查詢,通過查閱項欄位進行關聯,然後使用spquery的joins屬性進行關聯查詢,通過設定關聯的字段和需要顯示的字段來設定顯示,完成關聯查詢。

附:列表結構

列表一:city

字段:title(預設字段,單行文字,作為address關聯的查閱項)

cityid(數字型別,作為address關聯的查閱項)

mark(單行文字,作為多表查詢的測試字段)

列表二:address

字段:title(預設)

location(查閱項,關聯city列表的title)

customcityid(查閱項,關聯city列表的cityid)

附:參考鏈結

SharePoint 2013 的新特性

1.sharepoint 2013將會包含新的sharepoint應用商店 2.新的應用商店provider 應用包可以被配置成使用任何後台資料庫,只要它支援新的資料庫提供者介面 3.sharepoint應用將支援多租戶的安裝,使得hosting提供商能夠提供給多使用者可用的相同的應用集 4.sha...

SharePoint 2013 同步FBA認證使用者

sharepoint 開啟了基於fba的身份認證,經常會遇到使用者組使用者的問題,當我加入乙個ad賬號,無法同時加入form認證的使用者,這時,只能手動新增,比較麻煩 所以,寫了乙個服務,用來每天晚上同步一下使用者組中的ad賬號和form賬號。原理 原理比較簡單,就是遍歷使用者組的所有使用者,同步的...

SharePoint 2013 禁用搜尋服務

前言,在sharepoint2013中,對於硬體需求的提公升,讓我們虛機裡安裝總是一籌莫展,尤其開啟了搜尋服務以後,對於記憶體的消耗就更加嚴重,尤其對於我們開發者來說,搜尋服務並不是必須開啟的,所以,我們需要禁用掉不需要的服務,來減輕開發環境的壓力.首先對比一下是否開啟搜尋對於伺服器記憶體的壓力 特...