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 配列または一般的な 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

adapter.Update (updRows); で使用する適切なDsPerson.PersonRow[] 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 に答える