Как скопировать DataTable в SharePoint SPList? - PullRequest
3 голосов
/ 14 июля 2009

У меня есть данные списка источников в таблице данных 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)
    {

    }
}

1 Ответ

2 голосов
/ 14 июля 2009

Наилучшим подходом для вышеуказанного случая является использование ProcessBatchData метода объекта SPWeb . Это поможет вам обновить элементы списка в списке в пакетном режиме.

  1. Вам необходимо создать теги XML, которые будут содержать детали для вставки данных в список.
  2. Если у вас есть большое количество записей для вставки в список, рассмотрите возможность разделения его на более мелкие партии. Скажем, если у вас есть 1000 записей, сделайте это в двух 500 комплектах.
  3. При создании XML убедитесь, что вы используете StringBuilder класс для добавления строки.
  4. См. Эти ссылки Ссылка1 Ссылка2 Ссылка3 для получения дополнительной информации о ProcessBatchData

В случае, если вы хотите сделать это с помощью ОМ. Затем следуйте коду

`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()

}

`

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...