Como copiar um DataTable para um SPList SharePoint?
-
13-09-2019 - |
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)
{
}
}
Solução
melhor abordagem para o caso acima é usar o ProcessBatchData ??strong> Método do SPWeb Objeto. Isso irá ajudá-lo a atualizar a lista de itens para a Lista em Batch.
- Você precisa construir um tags XML que terão detalhes para inserir os dados para a lista.
- 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.
- Ao construir a marca XML se você usar StringBuilder classe para anexar a string.
- Consulte estes links Link1 Link2 Link3 para mais informações sobre ProcessBatchData ??strong>
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