将 dataRow 转移到新数据集
Posted
技术标签:
【中文标题】将 dataRow 转移到新数据集【英文标题】:transfer dataRow to new dataset 【发布时间】:2009-07-30 12:03:04 【问题描述】:我有一个从复杂的 xml 结构中读取的数据集....
为了这个问题,这是它的基本版本
<cars>
<car>
<carName>Golf</carName>
<engine>
<model></model>
</engine>
<//car>
<car>
<carName>Dodge</carName>
<engine>
<model></model>
</engine>
<//car>
</cars>
首先我创建数据集以获取整个文档....(我从文件中读取)
DataSet dsCars = new DataSet();
dsConfiguration.ReadXml("allcars.xml"));
接下来我想遍历所有汽车行.. 为此,我使用以下代码:
foreach(DataRow carDataRow in dsCars.Tables["Car"].Rows)
现在在这个循环中,我想将汽车行(及其所有子内容)注入一个新数据集
所以在 foreach 循环中我有代码
-
创建新数据集
创建一个新的数据表 = CarList2
使用以下命令导入行: tempTaskTable2.ImportRow(carDataRow);
但是当我使用以下命令序列化到文件时: tempTaskDS.WriteXml(@"c:\test.xml");
新创建的数据表 = Carlist2 是空白的,根本不包含任何数据...
我做错了什么?
【问题讨论】:
我认为您正在添加引用。你使用了 clone() 方法吗? 不是我用了dataTable的导入行功能。 每辆车都有一个新数据集? 【参考方案1】:我不确定您要做什么,但您可以在循环中尝试:
DataSet tempTaskDS = new DataSet("tempCars");
tempTaskDS.Tables.Add("Cars");
tempTaskDS.Tables[0].Rows.Add(carDataRow);
【讨论】:
【参考方案2】:首先确保您的目标 DataSet / DataTable 在列数、列类型等方面与源 DataSet / DataTable 相同 然后使用
targetDataSet.Tables["CarList2"].ImportRow(sourceRow)
【讨论】:
以上是关于将 dataRow 转移到新数据集的主要内容,如果未能解决你的问题,请参考以下文章