Pergunta

Eu tenho a minha lista fonte de dados na tabela de dados sourceList e deseja copiar os dados para a sua lista de raiz.

Como posso fazer isso?

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)
    {

    }
}
Foi útil?

Solução

melhor abordagem para o caso acima é usar o ProcessBatchData Método do SPWeb Objeto. Isso irá ajudá-lo a atualizar a lista de itens para a Lista em Batch.

  1. Você precisa construir um tags XML que terão detalhes para inserir os dados para a lista.
  2. Se você tem grande número de registros a serem inseridos à lista consideram parcelamento-lo para batchs menores. Diga se você tem 1000 registros de fazê-lo em dois 500 conjuntos.
  3. Ao construir a marca XML se você usar StringBuilder classe para anexar a string.
  4. Consulte estes links Link1 Link2 Link3 para mais informações sobre ProcessBatchData

No caso, se você quiser fazê-lo usando o OM. Em seguida, siga o código

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

}

`

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top