2009-07-14 7 views
3

J'ai mes données de la liste source dans la table de données sourceList et que vous souhaitez copier ces données à sa liste racine.Comment copier un DataTable dans un SPList SharePoint?

Comment puis-je faire cela?

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

    } 
} 

Répondre

2

meilleure approche pour le cas ci-dessus est d'utiliser la ProcessBatchData Méthode de la SPWeb objet. Cela vous aidera à mettre à jour les éléments de la liste dans la liste en lot.

  1. Vous devez créer des balises XML qui comporteront des détails pour l'insertion des données dans la liste.
  2. Si vous avez un grand nombre d'enregistrements à insérer à la liste dans spliting envisager de batchs plus petits. Dites si vous avez 1000 dossiers le font dans deux 500 ensembles.
  3. Alors que la construction du XML assurez-vous que vous utilisez StringBuilder classe pour ajouter la chaîne.
  4. ces liens Link1 Référez-Link2Link3 pour plus d'informations sur ProcessBatchData

Dans le cas si vous voulez le faire en utilisant l'OM. Ensuite, suivez le code

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

} 

`

+0

Ma liste n'est pas trop long, mais peut-je utiliser la vue par défaut datatable en quelque sorte? – Azra

+0

Oui, vous pouvez utiliser le DefaultView, vous pouvez utiliser Iterate Default View de DataTable en utilisant un code For Each et faire l'opération comme mentionné dans l'extrait de code ci-dessus. – Kusek

+0

CAnvoyez-vous un exemple de code, quelle propriété utilise l'affichage par défaut? Je pourrais sembler stupide, mais je suis confus. – Azra