2011-05-24 101 views
0

我有一個列有三列1)Title,2)LoginUser 3)ParentSiteAccess。如果一個特定的用戶登錄,那麼我需要獲取第三列的值(即ParentSiteAccess)。 我正在使用下面的查詢來獲取它。使用CAML查詢在sharepoint中查詢列表項

query.Query = @"<Where><Eq><FieldRef Name='LoginUser'/><Value Type='Text'>" + userName + "</Value></Eq></Where>"; 
        query.ViewFields = "<FieldRef name='ParentSiteAccess'/><FieldRef name='LoginUser'/>"; 
        query.ViewFieldsOnly = true; 

但我沒有得到這種方法。任何人都可以給我一個有效的解決方案?

+0

「LoginUser」真的是文本字段嗎?或者它是一個人們選擇領域?僅限 – CBono 2011-05-24 18:26:42

+0

文本字段。 – 2011-05-25 05:32:36

回答

1

您的查詢格式良好,但無法訪問您的環境,因此調試起來非常困難。一個常見的問題是列的顯示名稱與內部名稱不匹配。

我可以告訴你的最好的事情是得到一個方便的免費程序U2U CAML Query Builder的副本。 2007版可與SP 2010配合使用。

如果您與SharePoint安裝不在同一個框中,請使用「SharePoint Web Services」進行連接。如果你是,「對象模型」或「Web服務」選項將起作用。

登錄後,指向您的列表並使用UI構建查詢。最好的事情是你可以通過顯示名稱選擇列,但是它使用內部名稱構建查詢。這是快速實驗查詢並獲得有關返回信息的快速反饋。

當你得到一個有效的查詢時,只需將它從實用程序的窗口中複製到代碼中。