リスト アイテムを追加または削除する

最終更新日: 2010年3月16日

適用対象: SharePoint Foundation 2010

このトピックの例では、SharePoint Foundation サーバー オブジェクト モデルを使用して、Web サイトまたはサイト コレクションでリスト アイテムを作成または削除する方法を説明しています。

注意

このトピックの例では、Microsoft.SharePoint.SPContext クラスのメンバーを使用して現在のサイト コレクション、Web サイト、またはリストを取得します。HTTP コンテキストの外側 (コンソール アプリケーションや Windows アプリケーション) から、別の方法で主要なオブジェクトへの参照を取得します。Microsoft.SharePoint.SPContext オブジェクトを使用する代わりに、SPSite() コンストラクターを使用して、特定のサイト コレクションをインスタンス化し、オブジェクトを取得します。詳細については、「サイト、Web アプリケーション、およびその他の主要オブジェクトへの参照を取得する」を参照してください。

リスト アイテムの作成

リストにアイテムを追加するには、SPListItemCollection クラスの Add メソッドを使用してアイテム オブジェクトを作成してから、SPListItem クラスの Update メソッドを使用してデータベースを新しいアイテムで更新します。

以下の例では、5 つのテキスト ボックスが存在するものと仮定しています。1 つはアイテムの追加先のリストの名前を指定するテキスト ボックスで、他の 4 つは追加する値を指定するためのテキスト ボックスです。インデクサーで、この 5 つのソースから入力内容を集めます。この例では、TextBox1.Text で指定されるリストが存在することも仮定しています。

Dim mySite As SPWeb = SPContext.Current.Web
Dim listItems As SPListItemCollection 
    = mySite.Lists(TextBox1.Text).Items

Dim item As SPListItem = listItems.Add()

item("Title") = TextBox2.Text
item("Stock") = Convert.ToInt32(TextBox3.Text)
item("Return Date") = Convert.ToDateTime(TextBox4.Text)
item("Employee") = TextBox5.Text

item.Update()
SPWeb mySite = SPContext.Current.Web;
SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;

SPListItem item = listItems.Add();

item["Title"] = TextBox2.Text;
item["Stock"] = Convert.ToInt32(TextBox3.Text);
item["Return Date"] = Convert.ToDateTime(TextBox4.Text);
item["Employee"] = TextBox5.Text;

item.Update();
}

この例では、最初にコレクションの Add メソッドを使用して SPListItem オブジェクトを作成します。次に、リスト アイテムでインデクサーを使用して特定のフィールドに値を設定します。たとえば、 item["Title"] は、アイテムの Title 列の値です。最後に、リスト アイテムの Update メソッドを呼び出して、データベースに変更を反映させます。Author、Editor、Created、Modified の各フィールドをインデクサーとして使用することもできます。ここで、Author または Editor は、Microsoft SharePoint Foundation のユーザー ID です。例については、SPListItem クラスを参照してください。

リスト アイテムの削除

リストからアイテムを削除するには、SPListItemCollection クラスの Delete メソッドを使用します。このメソッドは、コレクションのインデックスをパラメーターとして受け取ります。

Dim mySite As SPWeb = SPContext.Current.Web
Dim listItems As SPListItemCollection 
    = mySite.Lists(TextBox1.Text).Items
Dim itemCount As Integer = listItems.Count
Dim k As Integer

For k = 0 To itemCount - 1
    Dim item As SPListItem = listItems(k)

    If TextBox2.Text = item("Employee").ToString() Then
        listItems.Delete(k)
    End If
Next k
SPWeb mySite = SPContext.Current.Web;
SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;
int itemCount = listItems.Count;

for (int k=0; k<itemCount; k++)
{
    SPListItem item = listItems[k];

    if (TextBox2.Text==item["Employee"].ToString())
    {
        listItems.Delete(k);
    }
}

この例は、2 つのテキスト ボックスからの入力に基づいて、指定されたリストのアイテムのコレクションに対して反復処理を実行し、Employee フィールドの値が指定された値と一致する場合に、そのアイテムを削除します。

上記の例では、Microsoft.SharePoint 名前空間に対する using ディレクティブ (Visual Basic の場合は Imports) が必要になります。

関連項目

参照

Microsoft.SharePoint

概念

リストのオブジェクトとコレクションを操作する

Visual Studio を使用して SharePoint 開発を行う

データ更新のためのセキュリティ検証と投稿の作成

権限の昇格