首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-01-10 
错误:在不同 DataSet 中的表之间不能建立关系代码如下:protectedvoidPage_Load(objectsender,EventArgse){

错误:在不同 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);


// <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();

热点排行