0

有一个名为 DsPerson 的类型化数据集和一个名为 ListPerson 的自定义类型化通用列表

DsPerson Ds1Person;

List<Person> ListPerson;

想做类似下面代码的事情,

请帮我纠正这个:

 DataTable dtPerson = Ds1Person.Tables["Person"];
 DataRow drPerson = dtPerson.NewRow();

 DsPerson.PersonRow[] updRows = ListPerson.Cast<Person>().Select(row => dtPerson.NewRow()
                      {
                          Nick = row.Nick,
                          Name = row.NameX,
                       }).ToArray();

需要以这种方式制作的 DataRow Array 或通用 DataTable。

由于我正在处理的代码规范,不在这里寻找实体或任何其他替代方案。

任何帮助都非常感谢...


More Clarifying :

需要什么:

像扭转这些:(相反的方式)

http://www.stackoverflow.com/questions/441023/fastest-way-to-convert-datatable-to-generic-list

或者一种更清洁和 Linqy 的方式来做类似的事情:

http://beecy.net/post/2009/05/18/convert-generic-list-to-datatable-using-reflection.aspx

获取正确的DsPerson.PersonRow[] updRows 以与 adapter.Update(updRows); 一起使用

怎么了 ?

Cast - Select 语句有轻微错误:我只知道它应该与此类似,所以我不确定这行代码的结构,

现在报告的错误是:

错误 2 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“DsPerson.PersonRow[]”。存在显式转换(您是否缺少演员表?)

4

1 回答 1

2

这同样适用于强类型DataSet

DataRow[] updRows = 
    ListPerson.Select(p => dtPerson.Rows.Add(p.Nick, p.Name)).ToArray();
于 2012-06-29T15:48:13.370 回答