0

SharePointリストのいくつかのアイテムを返すためのcamlクエリがコードにあります。クエリで一致するアイテムが見つからないか、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

アイテム数を使用して、最初に選択したアイテムがあるかどうかを確認します。カウントしている場合は、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 に答える