0

我的代码中有一个 caml 查询来返回一些 SharePoint 列表项。如果查询未找到任何匹配项或返回 NULL,我添加了 IF 语句。

                   SPListItemCollection Items = RiskAssesment.GetItems(new SPQuery()
                   {
                       Query = @"<Where>
                                   <Eq>
                                     <FieldRef Name='Department'/>
                                     <Value Type='Text'>"+Department+"</Value>
                                   </Eq>
                                 </Where>"
                    });

                    foreach (SPListItem item in Items)
                    {
                        if (item != null)
                        {
                            item["Name"]="abcd";
                            item.Update();
                        }
                        else
                        {
                            newListItem["Name"] = "xyz";
                            newListItem.Update();
                        }
                    }

如果在列表中没有找到 Department,则不会转到 ELSE 语句。

4

3 回答 3

0

使用 item count 可以先了解是否有任何项目与您的选择。如果你有计数,那么使用你的 for-each 循环。

于 2012-10-22T14:26:32.653 回答
0
         try{
    SPListItemCollection Items = RiskAssesment.GetItems(new SPQuery() 
                        { 
                            Query = @"<Where> 
                                             <Eq> 
                                                <FieldRef Name='Department'/> 
                                                <Value Type='Text'>"+Department+"</Value>                           </Eq></Where>" 
                        }); 
                         if(Items != null){
                        foreach (SPListItem item in Items) 
                        { 
                            if (item != null) 
                            { 
                                item["Name"]="abcd"; 
                                item.Update(); 
                            } 
                            else 
                            { 
                                newListItem["Name"] = "xyz"; 
                                newListItem.Update(); 
                            } 
                        } 

                    }

        }
        Catch(Exception exc){
        //Do something with your exception here
        }
于 2012-10-11T14:41:23.707 回答
0

我解决了。该查询将仅返回您输入的部门。因此 foreach 语句将仅包含该部门中的项目。所以我没有找到其他不匹配的项目。这就像是:

                       SPListItemCollection Items = RiskAssesment.GetItems(new SPQuery()
                        {
                            Query = @"<Where>
                                         <Eq>
                                            <FieldRef Name='Department'/>
                                            <Value Type='Text'>" + Department + "</Value></Eq></Where>"
                        });

                        if (Items.Count==0)
                        {
                           item["Name"]="abcd"; 
                            item.Update(); 
                        }
                        else
                        {
                            foreach (SPListItem item in Items)
                            {
                                if (item != null)
                                {
                                   item["Name"]="abcd"; 
                            item.Update(); 
                                }
                            }
                        }
于 2012-10-12T11:30:31.993 回答