2016-07-02 34 views
1

我有一種情況,請幫助我建立一個CAML查詢。與CAML查詢聯接和WHERE條件一起

SharePoint列表1具有列:

  • ID
  • 客戶名稱

SharePoint列表2具有列:

  • ID
  • CUST_ID
  • 產品名稱
  • 數量
  • 價值

ID(list 1)=Cust_ID(list 2)

假設從一個特定分支的人登錄,當前登錄的分支首先檢查。 然後在ASP網格視圖顯示器(將要採取的分支形式列表1)Sharpeoint列表2,但只有當前分支中的所有內容。手段加入查詢是必要的,以及檢查當前登錄分支的條件。

請幫助我建立一個相同的CAML查詢時,我嘗試了一些CAML查詢生成器,但力得到的結果。

回答

0

不能join.in這種情況下,你有,如果有多個BRACH 1級的用戶,或兩者兼有,您可以創建模型,例如,你應該查詢與身份證件和分公司,所以如果第二個列表來查找分公司列表2你沒有分支機構的名稱或分支代碼,你可以得到與該用戶加載的所有數據的數據模型,您可以選擇您從模型

public class AllDatas 
{ 
public AllDatas(SplistItem item) 
{ 
CustomerName = item["CustomerName"] 
Branch = item["Branch"] 
Product = item["Product"] 
. 
. 
. 
} 

string CustomerName {get;set} 
string Branch {get;set;}//this can be int what evet you want 
string Product Name {get;set} 
int Quantity {get;set} 
int Value {get;set} 
} 

什麼都想要我假設你有分公司和ID,所以如果你不要有ID和只有有了分支,那麼你應該CAML列出一個與分公司獲取ID查詢到列表2,你可以使用相同的CAML和方法,從列表1中獲取數據。

using(SPSite oSiteCollection = new SPSite("http://Server_Name")) 
{ 
    using(SPWeb oWebsite = oSiteCollection.OpenWeb("Website_URL")) 
    { 

SpList list2Col = oWebsite.Lists["List2"]; 
SPListItemCollection list2 = list2Col.GetItems("<Query><Where><Eq><FieldRef Name='Cust_ID' /><Value Type='Number'>"Your Customer ID From List1"</Value></Eq></Where></Query>"); 
List<AllDatas> myDatas = new List<AllDatas>(); 
     foreach(SpListItem item in list2) 
{ 
myDatas.add(new AllDatas(item)); 
} 

var resultWithCorrectBranch = myDatas.Where(t=>t.Branch=="something" 
    } 
}