2013-07-09 51 views
2

我一直在尋找如何解決這個問題好幾個小時了,而且我似乎無法弄明白。我想要做的是選擇1個表的一部分並將其複製到臨時表(我的應用程序需要一次處理特定的組)。當我嘗試實現CopyToDataTable()方法,我得到一個錯誤說:C#CopyToDataTable方法不起作用

參數數量不匹配

,並突出了ObjectSchredder.cs文件(一個來自微軟的網站)線137。我的代碼如下:

private void fillTempTable() 
{ 
    IEnumerable<DataRow> tempResults = from row in sourceTable.AsEnumerable() 
             where row.Field<String>("GroupID") == GetCurrentGroupName() 
             select row; 

    tempGroup = tempResults.CopyToDataTable<DataRow>(); //Everything seems to work until this line    
} 
+0

'tempGroup'從哪裏來? – Arran

回答

3

你不需要CopyToDatatable方法,它與任何類型的工作(即使匿名類型),微軟與ObjectShredder類提供。您正在從DataTable中選擇DataRows,因此正常CopyToDataTable的工作沒有問題。它位於System.Data.DataSetExtensions.dllDataTableExtensions班。

所以我認爲這只是一個命名空間問題。從動態CopyToDataTable擴展方法取出using和嘗試這個辦法:

tempGroup = tempResults.CopyToDataTable(); 

如果沒有幫助重命名自定義CopyToDataTable<T>方法。

+0

我得到了同樣的錯誤... mscorlib.dll中出現'System.Reflection.TargetParameterCountException'類型的未處理異常 其他信息:參數計數不匹配。 – ProfessionalAmateur

+0

@ user2564864:'sourceTable'是一個'DataTable'?然後它必須工作。 –

+0

這是一張數據表。我知道它應該工作,這就是爲什麼我在我的桌子上敲我的頭大聲笑 – ProfessionalAmateur