当前位置: 代码迷 >> ASP.NET >> 异常:在不同 DataSet 中的表之间不能建立关系
  详细解决方案

异常:在不同 DataSet 中的表之间不能建立关系

热度:9246   发布时间:2013-02-26 00:00:00.0
错误:在不同 DataSet 中的表之间不能建立关系
代码如下:
  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();
     
        }

求救高手!谢谢了。

------解决方案--------------------------------------------------------
改为下面的试试
IList <ProductInfo> dlist = procuts.GetProducts();
foreach(DataTable dt in NHibernateHelper.ConvertToDataSet <ProductInfo> (dlist).Tables)
{
db.Tables.Add(dt);
}

------解决方案--------------------------------------------------------
忘加括号了
IList <ProductInfo> dlist = procuts.GetProducts();
foreach(DataTable dt in (NHibernateHelper.ConvertToDataSet <ProductInfo> (dlist)).Tables)
{
db.Tables.Add(dt);
}
------解决方案--------------------------------------------------------
将需要建立关系的表导入到一个dataset中即可。
楼上的是把2个dataset合并到一个里面来了,如果开销不大也无妨
------解决方案--------------------------------------------------------
你第二次给
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);
  相关解决方案