代码如下:
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);