错误:在不同 DataSet 中的表之间不能建立关系

sukewan123456 2007-04-18 12:49:10
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
Category category = new Category();
DataSet db = new DataSet();
IList<CategoryInfo> list = category.GetCategories();
db=NHibernateHelper.ConvertToDataSet<CategoryInfo>(list);
( NHibernateHelper.ConvertToDataSet<CategoryInfo>(list)这句表示把泛型转换成dataset);
DataColumn paretncolum = db.Tables["CategoryInfo"].Columns["Id"];
Product procuts = new Product();
IList<ProductInfo> dlist = procuts.GetProducts();
db=NHibernateHelper.ConvertToDataSet<ProductInfo>(dlist);
<db得到的是dataset数据集>
DataColumn childcolumn = db.Tables["ProductInfo"].Columns["categoryId"];
DataRelation relprocust;
relprocust = new DataRelation("customers", paretncolum, childcolumn);
错误:在不同 DataSet 中的表之间不能建立关系
db.Relations.Add(relprocust);
DataGrid1.DataSource = db.Tables["categoryInfo"];
DataGrid1.DataBind();

}

求救高手!谢谢了。
...全文
270 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Loyalchen 2010-08-01
  • 打赏
  • 举报
回复
顶,我也是这个问题
hertcloud 2007-04-18
  • 打赏
  • 举报
回复
你第二次给
db赋值的 时候 一次的赋值的 结构 已经不存在了了 db被重新覆盖了
你怎么还能使用之前的 列呢......

Category category = new Category();
DataSet db = new DataSet();
IList<CategoryInfo> list = category.GetCategories();
db=NHibernateHelper.ConvertToDataSet<CategoryInfo>(list);
//( NHibernateHelper.ConvertToDataSet<CategoryInfo>(list)这句表示把泛型转换成dataset);

Product procuts = new Product();
IList<ProductInfo> dlist = procuts.GetProducts();
DataSet db2 = NHibernateHelper.ConvertToDataSet<ProductInfo>(dlist);
// <db得到的是dataset数据集>
db.Tables.Add(db2.Tables[0]);
DataColumn paretncolum = db.Tables["CategoryInfo"].Columns["Id"];
DataColumn childcolumn = db.Tables["ProductInfo"].Columns["categoryId"];
DataRelation relprocust;
relprocust = new DataRelation("customers", paretncolum, childcolumn);
//错误:在不同 DataSet 中的表之间不能建立关系
db.Relations.Add(relprocust);
DataGrid1.DataSource = db.Tables["categoryInfo"];
DataGrid1.DataBind();
neillove 2007-04-18
  • 打赏
  • 举报
回复
帮顶
littlekeen 2007-04-18
  • 打赏
  • 举报
回复
将需要建立关系的表导入到一个dataset中即可。
楼上的是把2个dataset合并到一个里面来了,如果开销不大也无妨
babyrockxray 2007-04-18
  • 打赏
  • 举报
回复
忘加括号了
IList<ProductInfo> dlist = procuts.GetProducts();
foreach(DataTable dt in (NHibernateHelper.ConvertToDataSet<ProductInfo>(dlist)).Tables)
{
db.Tables.Add(dt);
}
babyrockxray 2007-04-18
  • 打赏
  • 举报
回复
改为下面的试试
IList<ProductInfo> dlist = procuts.GetProducts();
foreach(DataTable dt in NHibernateHelper.ConvertToDataSet<ProductInfo>(dlist).Tables)
{
db.Tables.Add(dt);
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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