3

私はC#でDataSetsとDataTablesを使用しています。

私の最初の問題は、DataRow []オブジェクトをDataTableに変換する方法でした。これは、次のリンクで解決しました。

simple-way-to-convert-datarow-array-to-datatable

だから、私がしたことは次のとおりでした:

// Gets the rows according to the relation
DataRow[] rows = someDataRow.GetChildRows("the_table_relation");
DataTable newDataTable = rows.CopyToDataTable<DataRow>();    

私が扱っているすべてのデータは単一のデータセットに含まれているため、私の問題は、オブジェクトnewDataTableにデータセットへの参照が含まれていないことです(つまりnewDataTable.DataSet、に等しいnull)。

データセットへの参照を失うことなく変換を行う方法はありますか?

誰かが私を助けてくれることを願っています。

前もって感謝します

4

3 に答える 3

11

おそらくあなたすでに?DataTableその場合は、既存のテーブルを引数として取るオーバーロードを使用します。CopyToDataTable

rows.CopyToDataTable<DataRow>(existingTable, LoadOption.Upsert);

または、使用できますDataTableCollection.Add(DataTable)か?

dataSet.Tables.Add(table);
于 2012-06-29T19:17:42.667 に答える
4
 DataView DV = MyDataTable.AsDataView();
 DV.RowFilter = "Id = '" + RecordId + "'";
 DataTable newDataTable = DV.ToTable();
于 2014-11-23T09:17:31.150 に答える
1

解決策はジョンスキートの答えに含まれているかもしれないと私は信じています dataSet.Tables.Add(newDataTable)

重要なのは、newDataTableにはDataSetの子コントロールではなく、DataSetの親コントロールがあるということです。つまり、DataSetにはテーブルを含めることができますが、newDataTableのDataSetは「newDataTableを所有するDataSet」であり、上記で作成したテーブルの場合、DataSetに追加されるまでnullになります。

于 2012-06-29T20:10:23.830 に答える