小弟看到一项目中有如下代码,感到疑惑,特拿来请高手赐教。
DataView dn,dw;
dw = new DataView();
dw = xmlConfig.GetData("descendant::WebLinks");
for (i = 0; i < dw.Count; i++)
{
dn = dw[i].CreateChildView("WebLink_NavigationRules")[0].CreateChildView("NavigationRules_Rule");
cNavigRule nRule;
for (int m = 0; m < dn.Count; m++)
{
Console.WriteLine( dn[m].Row["Url"].ToString() );
}
}
很明显,dw是从一xml文件中获取数据后返回来的dataview对象,我想,dw[i].应该是表示一数据行(Row)吧,至多是表示一datatable,dw[i].CreateChildView("WebLink_NavigationRules")[0].CreateChildView("NavigationRules_Rule")这句应该是创建了新表吧。我的疑问是:新表应该是空的,没有数据,但上述代码怎么会用语句 “for (int m = 0; m < dn.Count; m++)”来循环获取新表中的内容呢?还请哪位高手帮解释下。
------解决思路----------------------
CreateChildView从关联的表中获取子视图数据不是创建空数据