3

データテーブルにソースリストデータがあり、sourceListそのデータをルートリストにコピーしたいと思います。

どうやってやるの?

private void MoveToTopTaskList(DataTable sourceList, SPSite DestinationSiteCollection)
{
    SPWeb Destinationsite = DestinationSiteCollection.OpenWeb();
    SPList DestinationList = Destinationsite.Lists[TASKS];
    SPListItem DestinationListItem = DestinationList.Items.Add();

    foreach (DataRow row in sourceList.Rows)
    {

    }
}
4

1 に答える 1

2

上記の場合の最善のアプローチは、SPWeb オブジェクトの ProcessBatchData メソッドを使用することです。これは、リスト アイテムをバッチでリストに更新するのに役立ちます。

  1. リストにデータを挿入するための詳細を含む XML タグを作成する必要があります。
  2. リストに挿入するレコードが多数ある場合は、リストを小さなバッチに分割することを検討してください。1000 レコードを 2 つの 500 セットで行うとします。
  3. XML を作成するときは、必ずStringBuilderクラスを使用して文字列を追加してください。
  4. ProcessBatchDataの詳細については、これらのリンクLink1 Link2 Link3を参照してください

OM を使用して実行する場合に備えて。次に、コードに従ってください

`SPWeb Destinationsite = DestinationSiteCollection.OpenWeb();
SPList DestinationList = Destinationsite.Lists[TASKS];    
SPListItem DestinationListItem = DestinationList.Items.Add();
  foreach (DataRow row in sourceList.Rows)
{
    DestinationListItem = DestinationList.Items.Add();
    DestinationListItem["Field1"]=row["Col"].ToString();
    DestinationListItem["Fieldn"]=row["Coln"].ToString();
    DestinationListItem.Update()

}

`

于 2009-07-14T17:36:13.460 に答える