2013-07-09 2 views
2

Я искал, как исправить это в течение многих часов, и я не могу понять, как это понять. То, что я пытаюсь сделать, это выбрать часть 1 таблицы и скопировать ее в временную таблицу (мое приложение должно работать с определенными группами одновременно). Когда я пытаюсь реализовать метод CopyToDataTable() я получаю сообщение об ошибке сказав:C# CopyToDataTable метод не работает

Количество параметров рассогласования

и строка 137 в файле ObjectSchredder.cs (тот, с веб-сайта Microsofts) выдвигает на первый план. Мой код ниже:

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, который работает с любыми типами (даже с анонимными типами), которые Microsoft предоставляет с ObjectShredder класса. Вы выбираете DataRows из DataTable, поэтому нормальный CopyToDataTable работает без проблем. Он сидит в классе DataTableExtensions в System.Data.DataSetExtensions.dll.

Так что я предполагаю, что это просто проблема пространства имен. Удалите using из динамического метода CopyToDataTable расширения и попробуйте это:

tempGroup = tempResults.CopyToDataTable(); 

Если это не помогает переименовать обычай CopyToDataTable<T> метод.

+0

Я получаю ту же ошибку ... «Необработанное исключение типа« System.Reflection.TargetParameterCountException »произошло в mscorlib.dll Дополнительная информация: несоответствие счетчика параметров." – ProfessionalAmateur

+0

@ user2564864: 'sourceTable' - это' DataTable'? Тогда это должно сработать. –

+0

Это DataTable. Я знаю, что это должно сработать, вот почему я бью голову над своим столом lol – ProfessionalAmateur

Смежные вопросы