2011-06-20 218 views
0

我不確定是否正在討論這種正確的方法,但我有一個將Excel表加載到二維對象數組中的c#方法。在這個數組項目1,1 - 1,16包含標題,然後2-1 - 2 - 16包含與這些標題相匹配的數據,從那裏做x-1 - x-16。我想打開這個數組放入數據表中,所以最終我可以使用一種格式,然後根據客戶需要導入到訪問或SQL服務器數據庫中。我已經嘗試使用下面的代碼無濟於事,但我有一種感覺,我走了。任何對此的幫助將非常感激。從對象數組創建數據表

private void ProcessObjects(object[,] valueArray) 
{ 
    DataTable holdingTable = new DataTable(); 
    DataRow holdingRow; 
    holdingTable.BeginLoadData(); 
    foreach(int row in valueArray) 
    { 
     holdingRow = holdingTable.LoadDataRow(valueArray[row], true); 
    } 
} 

回答

0

任何你使用存儲庫模式(如亞音速或EF)或使用LinqToSql的機會?

你可以(爲簡單起見LinqToSql)做到這一點:

List<SomeType> myList = valueArray.ToList().Skip([your header rows]).ConvertAll(f => Property1 = f[0] [the rest of your convert statement]) 
DataContext dc = new DataContext(); 

dc.SomeType.InsertAllOnSubmit(myList); 
dc.SubmitChanges(); 
+0

對不起你跟我來承擔,我不familliar與LINQ在所有的SQL。如果我理解代碼,它創建一個列表valueArray而不是像我創建的對象數組?現在在跳過部分中,我將假設[您的標題行]將替換爲單元格範圍(即.Skip(「A1:D16」)),但轉換語句的其餘部分的值是多少?現在我決定採取另一種方式,但我對學習這種LINQ方法非常感興趣。我在回覆中附加了新代碼,請讓我知道您的想法。 – SSISPissesMeOff