html表格显示数据库中多对多关系的思考

select * from v_coll_port where

collid in (select collid from v_coll_port where pollid=@pollID

group by collid having count(collid) > 1)

select * from V_coll_port where portid in(

select portid from v_coll_port where pollid=@pollID

group by portid having count(portID)>1)

select * from v_coll_port where pollid=@pollID and collid in (

select collid from v_coll_port group by collid having count(collid) = 1

) and portID in (

select portID from v_coll_port group by portID having count(portID) = 1

)

以上代码造出一对多、多对一和一对一的三种关系并列表,在后台得到表格后做如下处理

  1. DataTable dt12N = ds.Tables[0];
  2.             DataTable dtn21 = ds.Tables[1];
  3.             DataTable dt121 = ds.Tables[2];
  4.             GridNotStyle g = new GridNotStyle(2,"black","white","white");
  5.             for(int i=0;i<dt12N.Rows.Count;i++)
  6.             {
  7.                 DataRow r = dt12N.Rows[i];
  8.                 if(i==0)
  9.                 {
  10.                     g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString()+"^r^"+dt12N.Rows.Count,
  11.                         this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
  12.                 }
  13.                 else
  14.                 {
  15.                     g.SetHead(this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
  16.                 }
  17.             }
  18.             for(int i=0;i<dtn21.Rows.Count;i++)
  19.             {
  20.                 DataRow r = dtn21.Rows[i];
  21.                 if(i==0)
  22.                 {
  23.                     g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString(),
  24.                         this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString()+"^r^"+dtn21.Rows.Count);
  25.                 }
  26.                 else
  27.                 {
  28.                     g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString());
  29.                 }
  30.             }
  31.             foreach(DataRow r in dt121.Rows)
  32.             {
  33.                 g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString(),
  34.                     this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
  35.             }

只是这样的方法只能处理一对多、多对一和一对一都单独存在的情况,倘若是向错的多对多,还真是没有想到更好的办法 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值