我正在使用C#中的DataSet和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>();
我使用的所有数据都在一个DataSet中,因此,我的问题是我的对象newDataTable
不再包含对我的DataSet的引用(即newDataTable.DataSet
等于{ {1}})。
有没有办法在不丢失对DataSet的引用的情况下进行转换?
希望有人可以帮助我。
提前致谢
答案 0 :(得分:10)
据推测,您已经拥有一个DataTable
?如果是这样,请使用overload of CopyToDataTable
将现有表作为参数:
rows.CopyToDataTable<DataRow>(existingTable, LoadOption.Upsert);
或者,您可以使用DataTableCollection.Add(DataTable)
吗?
dataSet.Tables.Add(table);
答案 1 :(得分:4)
DataView DV = MyDataTable.AsDataView();
DV.RowFilter = "Id = '" + RecordId + "'";
DataTable newDataTable = DV.ToTable();
答案 2 :(得分:1)
我相信解决方案可能包含在Jon Skeet的答案中
dataSet.Tables.Add(newDataTable)
问题是newDataTable没有DataSet子控件,而是DataSet父控件。也就是说,DataSet可以包含Tables,而newDataTable的DataSet是“拥有newDataTable的DataSet”,在上面创建的表的情况下,它是null,直到添加到DataSet。