`
firefly_liu
  • 浏览: 35852 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

)
 



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

DataTable dt12N = ds.Tables[0];
            DataTable dtn21 = ds.Tables[1];
            DataTable dt121 = ds.Tables[2];
            GridNotStyle g = new GridNotStyle(2,"black","white","white");
            for(int i=0;i<dt12N.Rows.Count;i++)
            {
                DataRow r = dt12N.Rows[i];
                if(i==0)
                {
                    g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString()+"^r^"+dt12N.Rows.Count,
                        this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
                }
                else
                {
                    g.SetHead(this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
                }
            }
            for(int i=0;i<dtn21.Rows.Count;i++)
            {
                DataRow r = dtn21.Rows[i];
                if(i==0)
                {
                    g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString(),
                        this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString()+"^r^"+dtn21.Rows.Count);
                }
                else
                {
                    g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString());
                }
            }
            foreach(DataRow r in dt121.Rows)
            {
                g.SetHead(r["collName"].ToString()+"<br>编号:"+r["collID"].ToString(),
                    this.getPortName(r["portID"].ToString())+"<br>编号:"+r["portID"].ToString());
            }
 



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

分享到:
评论

相关推荐

    java 编程入门思考

    15.7 用JDBC连接数据库 15.7.1 获得学习示例 15.7.2 查找程序的GUI版本 15.7.3 JDBC API为何如何复杂 15.8 远程方法 15.8.1 远程接口概念 15.8.2 远程接口的实施 15.8.3 创建根与干 15.8.4 使用远程对象 15.8.5 RMI...

    asp.net知识库

    从SQL中的一个表中导出HTML文件表格 获取數据库表的前N条记录 几段SQL Server语句和存储过程 生成表中的数据的脚本 最详细的SQL注入相关的命令整理 Oracle Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle...

    网页与Web程序设计 课件 ppt 机械工业出版社 part1

    本书全面讲授网页设计与制作技术、JavaScript脚本编程和Web数据库应用技术。本书以目前最流行的网页设计三剑客Dreamweaver 8、Fireworks 8和Flash 8作为支撑平台,由浅入深,系统地介绍了网页的构思、规划、制作和...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    sqlalchemy 多对多关联 作业之学员管理系统开发 第13周 堡垒机框架开发介绍 堡垒机源码讲解 堡垒机项目表结构设计与实现 自动创建表对象 权限分组与数据初始化 第14周 开课介绍 前端技术概要 今日内容概要 Html...

    C++ 开发Web商用程序全书 pdf

    内容涉及HTML表格获取订单、CGI快速教程、ISAPI快速教程、使用数据库处理订单、ODBC连接数据库、客户花名册、存储片、实时信用处理、Fooshall商店、Internet网上软件发行、软件发行思考等相关内容。

    【卷一/共两卷】AJAX实战pdf高清版90M

    13.2.2 不使用表格的HTML框架 13.2.3 采用CSS方法排版 13.3 加载RSS提要 13.3.1 全局作用域 13.3.2 Aiax预加载功能 13.4 增加丰富的渐变效果 13.4.1 跨浏览器的不透明规则 13.4.2 实现淡入/淡出渐变 13.4.3 集成...

    gt2toxs-webpages:最初为我的地理位置用户ID gt2toxs创建的网页

    经过一番思考,我意识到这里最有用的东西是一个名为“ gears”HTML CGI工具和一个常规JavaScript玩具数据库查询“ selana.html”。 CGI“齿轮”为简化建模的汽车齿轮比生成数字表格结果。 尽管基于Gran Turismo提供...

    2019数据运营思维导图

    数据库、运营后台等 工作内容 数据监控 检测异常指标,发现用户对您产品的”怒点“ 如:多次获取手机验证码,次数剧增 这里需要考虑有一个监控指标 新功能数据分析 通过留存曲线检验新功能的效果 通过留存看新功能...

    数据运营思维导图

    在产品中植入多段代码追踪用户连续行为,建立用户模型来具体化用户在使用产品中的操作行为 高级 研发团队合作,通过数据埋点还原出用户画像及用户行为 常用数据分析工具 友盟、Talkingdata 友盟的页面访问分析...

    测试培训教材

    修改数据库中的数据: 修改后可以登陆 但是还需要修改以前Project的数据库连接属性 否则会提示错误 然后还要修改 C:\Program Files\Mercury\Quality Center\repository\qc中的dbcon.txt: qcsiteadmin_...

Global site tag (gtag.js) - Google Analytics