使用GetChildRows为什么不能获得行状态标记为DataRowState.Added的所有子行??急……

sy246 2005-01-23 12:26:22
建立关系
ds.Relations.Clear();
DataColumn parentCol;
DataColumn childCol;
parentCol = ds.Tables["DictionaryMain"].Columns["ID"];
childCol = ds.Tables["DictionaryDetail"].Columns["ID"];
DataRelation relCustOrder;
string relationname = "ParentAndChild";
relCustOrder = new DataRelation(relationname, parentCol, childCol);
ds.Relations.Add(relCustOrder);
添加新行
DataRow row = ds.Tables["DictionaryMain"].NewRow();//父行
row["ID"] = "111";
row["TableName"] = "zlzllz";
ds.Tables["DictionaryMain"].Rows.Add(row);
DataRow rows = ds.Tables["DictionaryDetail"].NewRow();//子行
rows["ID"] = "111";
rows["FileID"]="1";
rows["FileName"] = "name";
rows.SetParentRow(row);
ds.Tables["DictionaryDetail"].Rows.Add(rows);

//获取新添加的行以及其子行来保存
foreach(DataRow row in ds.Tables["DictionaryMain"].GetChanges(DataRowState.Added).Rows)
{
string sql = "insert into DictionaryMain(TableName) values('"+row["TableName"].ToString()+"');";
sql += "SELECT @ID=@@IDENTITY;";
DataRow[] childRow = row.GetChildRows("ParentAndChild");//在次并没有找到他的子行
foreach(DataRow rows in childRow)
{
sql += "insert into DictionaryDetail(ID,FileID,FileName) "+"values(@ID,"+detailID.ToString()+",'"+rows["FileName"].ToString()+"');";
detailID++;
}
err = WebInvoke.DataInvoke.Execute(sql);
if(err!="")
{
MessageBox.Show("保存表字段信息时出错!原因为:"+err);
return;
}
}

//但是问题是我可以通过DataRow[] childRow = row.GetChildRows("ParentAndChild");来获得刚从数据库中读取出来的数据的所有子行!

请高手赐教!谢谢
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
haoco 2005-02-01
  • 打赏
  • 举报
回复
up
gl637 2005-01-26
  • 打赏
  • 举报
回复
这个问题好像见过,到MSDN上找找
sy246 2005-01-25
  • 打赏
  • 举报
回复
顺便问另外一个问题吧:

我从表A、B各自取出数据放入数据集中,并且A与B之间具有联系:即A表字段Bid为B表中的主键ID,那么我在显示的时候我想将A、B两表的数据进行合并,即通过外键关联显示给用户的是A表中的所有数据以及B表中的部分数据。不知道应该如何做??

通常大家的做法是在写SQL语句的时候就会关联出来,不过我觉得这种方法或许比我上面提出来的效率要低,但目前我还没有找到解决的方法。

希望大家能跟我一起讨论一下。
sy246 2005-01-25
  • 打赏
  • 举报
回复
我现在就是使用循环来取的数据,不过我想寻找一下上面方式的原因!
liulxmooo 2005-01-25
  • 打赏
  • 举报
回复
up
gl637 2005-01-25
  • 打赏
  • 举报
回复
我觉得你可以根据主键进行foreach循环来查找。

不过我实在是不清楚为什么这种状态下会找不到呢。

问问孟大哥吧
gl637 2005-01-25
  • 打赏
  • 举报
回复
顶,不会
sy246 2005-01-25
  • 打赏
  • 举报
回复
不会吧?这么久都没有人帮我看看呀?郁闷……

最后一次自己顶了
sy246 2005-01-24
  • 打赏
  • 举报
回复
还是没有人???

郁闷……
sy246 2005-01-23
  • 打赏
  • 举报
回复
怎么没有人回答呀!!

自己顶

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧