2009-07-14 104 views
3

我在sourceList數據表中有我的源列表數據,並希望將該數據複製到其根目錄。如何將DataTable複製到SharePoint SPList?

我該怎麼做?

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

    } 
} 

回答

2

對上述情況最好的辦法是使用的SPWeb對象的ProcessBatchData方法。這將幫助您將List項目更新到批處理列表中。

  1. 您需要構建一個XML標籤,其中包含將數據插入列表的詳細信息。
  2. 如果您有大量要插入列表的記錄,請考慮將其分成較小的批次。說如果你有1000個記錄在兩個500組中做。
  3. 在構建XML時,請確保使用StringBuilder類來追加字符串。
  4. 請參考以下鏈接Link1Link2Link3的更多信息,ProcessBatchData

在情況下,如果你想使用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() 

} 

`

+0

我的列表不是太長,但我可以利用某種方式數據表默認視圖嗎? – Azra 2009-07-15 04:50:48

+0

是的,您可以使用DefaultView,您也可以使用For Each代碼迭代DataTable的默認視圖,並執行上述代碼片段中提到的操作。 – Kusek 2009-07-15 04:59:02

+0

請提供一些代碼示例,哪些屬性使用默認視圖? 我可能聽起來很愚蠢,但我很困惑。 – Azra 2009-07-15 05:10:42

相關問題