リスト アイテムを追加または削除する
リストにアイテムを追加するには、SPListItemCollection クラスの Add メソッドを使用してアイテム オブジェクトを作成してから、SPListItem クラスの Update メソッドを使用してデータベースを新しいアイテムで更新します。
以下の例では、5 つのテキスト ボックスが存在することが前提となっています。1 つは追加するリストの名前を指定するテキスト ボックスで、他の 4 つは追加する値の指定に使用されます。インデクサを使用して、5 つすべてのソースから入力内容を集めます。
注意
The code examples in this topic use members of the Microsoft.SharePoint.SPContext class to obtain the current site collection, Web site, or list. Outside of an HTTP context, such as in a console application or a Windows application, you obtain references to key objects with a different method. For more information, see サイト、Web アプリケーション、およびその他の主要オブジェクトへの参照を取得する.
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 メソッドを呼び出して、データベースに変更を反映させます。
上記の例では、Microsoft.SharePoint 名前空間に対する using ディレクティブ (Microsoft Visual Basic の場合は Imports) が必要になります。
保持されるメタデータを持つリスト アイテムを作成するには、Author、Editor、Created、および Modified の各フィールドをインデクサとして使用します。Author または Editor には、Windows SharePoint Services ユーザーの 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) が必要になります。
See Also
参照
概念
Working with List Objects and Collections (英語)