`
369540808
  • 浏览: 204322 次
文章分类
社区版块
存档分类
最新评论

考试系统——数据库之合并动态生成表

 
阅读更多

合并动态生成的表思路:首先先动态生成一张表,循环遍历数据库中具有相同考试名称题型的答题记录表,再一一把查询出来的每一张表的答题记录合并到一张新生成的表中。

首先我们这是合并具有相同表结构的数据,所以比较简单一点,直接把数据拿过来就可以了。其次用到的是模糊搜索数据库中所有的表,模糊搜索一开始自己想的有点局限了就卡在这了,其实like'%+str+%'可以加字符串。


整体界面思路:

 #region 根据课程和题型查询生成表名称
        /// <summary>
        /// 根据课程和题型查询生成表名称
        /// </summary>
        public void BindJoin()
        {
            
            //获取课程的Value值
            DataTable dtCourse = new DataTable();
            enCourseMap.CourseID = dropCourse.SelectedItem.Value.ToString().Trim();
            dtCourse = CourseQuestion.SelectCourseMapByCourseID(enCourseMap);
            string CourseName = Convert.ToString(dtCourse.Rows[0]["ExamCourseName"]);

            //获取题型的Value值
            enSystem.DictionaryName = dropQuestion.SelectedItem.ToString().Trim();
            dt=Dictionary.Selectbyname(enSystem);
            string QuestionType=Convert.ToString(dt.Rows[0]["DictionaryValue"]);
            //string CollegeNo = "Join";
            try
            {
                //创建表
                //string tableName = teaGetTableName.GetTableNameRecord(CourseName, QuestionType, CollegeNo);
                string likeName = teaGetTableName.GetTableNameAllRecord(CourseName, QuestionType);
                map.Clear();//清空map表的所有数据;

                map.Add("TableNameRecord", likeName);
                map.Add("QuestionType", QuestionType);
                QuestionManageBLL.QuestionContextBLL questionContextBll = new QuestionManageBLL.QuestionContextBLL(map);
                questionContextBll.CreateQuestionRecord(map);

                //合并数据的表名(大表)
                //enArrange.JoinTables = likeName;
                //模糊匹配的表名
                enArrange.Other1 = likeName;
               
                JoinRecord.QueryTables(enArrange);
                //遍历表把内容添加到创建的表中
              

            }
            catch (Exception ex)
            {

                MessageBox.Show(this.Page,ex.Message);
            }

        }
        #endregion



like模糊搜索:like中间可以加字符串

//查询出所要合并的表并
            public DataTable QueryTables(ExamArrangeEntity model)
            {
                String str = "select name from sysobjects where type = 'U'and name like '%" + model.Other1 + "%'";
                DataSet ds = new DataSet();
                ds = DbHelperSQL.Query(str);
                return ds.Tables[0];

            }


合并表:

/// <summary>
            /// 合并表
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            public bool JoinTables(ExamArrangeEntity model)

            {
                StringBuilder strSql = new StringBuilder();
              
                strSql.Append("insert into " + model.Other1 + " Select StudentID,ExamID,QuestionID,ExamAnswer,CorrectAnswer,Fraction,Timestamp,IsCheck,Teacher,Remark,Other1,Other2 from " + model.Other2);
                  

                int rows = DbHelperSQL.ExecuteSql(strSql.ToString());

                if (rows >=0)
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }

其实合并表实现起来特别简单,一开始卡在了用like模糊搜索如何用参数模糊搜索,原来like中间可以加字符串,其他的都很简单。只要有大方向就按照大方向来肯定会实现,可能会是某个细节上会遇到问题,仔细想一想,查一下也就都解决了。

分享到:
评论

相关推荐

    全国计算机等级考试二级教程——Access数据库程序设计课件

    全国计算机等级考试二级教程——Access数据库程序设计课件是一套全面涵盖Access数据库基本概念和高级应用的教育资源。这个课程旨在帮助考生深入理解并熟练掌握Access的各个核心功能,以通过计算机二级考试。以下是对...

    销售管理系统——c#

    登录名附加数据库表明系统采用了身份验证机制,用户需要凭据登录,这通常涉及到数据库中的用户表和权限管理。 2. **数据访问层(DAL)**:在C#中,数据访问层是系统与数据库交互的部分。它封装了SQL查询和其他...

    PHP二维码在线制作生成系统源码 无需数据库 带logo图标

    至于“无需数据库”的特性,意味着系统并不需要持久化存储生成的二维码信息,降低了系统的复杂性和维护成本。用户每次生成的二维码都是临时的,依赖于用户的输入,而非保存在服务器的数据库中。这种设计适用于低流量...

    mdb数据库合并工具

    "mdb数据库合并工具"是一款专为处理mdb格式数据库设计的应用程序,主要功能是将多个具有相同结构的mdb文件中的表进行高效整合,形成一个统一的大表。mdb文件是Microsoft Access数据库的标准格式,常用于存储和管理...

    数据库课程设计——图书管理系统

    【数据库课程设计——图书管理系统】是一项实践性极强的学习任务,旨在帮助学生深入理解数据库管理和软件开发的过程。在这个过程中,学生们通常需要设计并实现一个图书管理的数据库系统,包括数据的存储、查询、更新...

    全国计算机等级考试——四级数据库工程师真题三月真题及其答案.pdf

    选项C) 提到将多表合并成一个表再进行查询,这是常见优化策略之一,可以减少JOIN操作,提高查询速度。其他选项,如使用视图、嵌套查询或存储过程通常不会直接提高查询性能,可能在特定场景下有其适用性,但不是普遍...

    全国计算机等级考试二级Visual FoxPro 数据库程序

    ### 全国计算机等级考试二级Visual FoxPro 数据库程序知识点详解 #### 一、基础知识概述 **全国计算机等级考试二级**是针对有一定计算机基础的学生进行的考试,旨在考察考生对于计算机基本理论和技术的实际运用...

    学生选课系统数据库和源代码

    这个资源包含了该系统的核心组成部分——数据库和源代码,对于学习和理解这类系统的设计与实现具有重要价值。 【数据库】 数据库是学生选课系统的基础,它存储了所有必要的数据,如学生信息、课程信息、选课记录等...

    大型数据库课程设计报告——机房管理系统.doc

    《大型数据库课程设计报告——机房管理系统》 大型数据库课程设计是计算机科学与技术专业的重要实践环节,旨在让学生深入理解数据库的设计与管理,通过实际项目锻炼数据库应用开发能力。本报告将详细介绍一个针对...

    数据库应用技术——SQL Server 2000简明教程源代码

    《数据库应用技术——SQL Server 2000简明教程源代码》是一个针对初学者的教程,涵盖了数据库管理和开发的基础知识,特别强调了SQL Server 2000的应用。本教程通过PPT形式和配套的源代码,帮助学习者深入理解数据库...

    超市会员管理系统-数据库课程设计.doc

    《超市会员管理系统——数据库课程设计》 超市会员管理系统是一个旨在提升超市会员管理效率的应用,它通过集成化的平台,实现对会员信息、会员卡、购物记录等数据的有效管理和控制。课程设计的目标是让学生深入理解...

    酒店管理系统——息系统项目管理课设.docx

    数据库结构设计是系统开发的重要组成部分,主要包括以下内容: - **用户表**:存储用户的登录信息和权限等级。 - **菜品表**:记录所有菜品的信息,包括名称、价格、所属菜系等。 - **订单表**:记录所有订单详情,...

    MySQL数据库8——数据库中函数的应用详解

    MySQL数据库是世界上最受欢迎的关系型数据库管理系统之一,它提供了丰富的内置函数来增强数据处理能力。本文将深入探讨MySQL中的一些重要函数,包括日期函数、字符串函数和数学函数。 ### 日期函数 日期函数在处理...

    ASP.NET源码——asp.net生成静态页面的模板引擎.zip

    这个压缩包文件"ASP.NET源码——asp.net生成静态页面的模板引擎.zip"包含了一个名为"EFPlatform.TemplateEngine v1.0_aspnetms"的项目,它是一个用于ASP.NET平台的模板引擎,专门用于生成静态HTML页面。这种技术可以...

    java poi 填充word(合并单元格,添加图片,设置字号)(csdn)————程序.pdf

    总结来说,这段代码展示了如何使用Java POI库创建一个动态Word文档生成器,它能够根据查询结果填充数据,合并单元格,调整文本样式,以及插入图片。这个功能对于生成报告、证书或任何需要自定义文本和图像的文档非常...

    数据库课程设计大作业--学生信息管理系统

    在本项目中,我们关注的是“数据库课程设计大作业——学生信息管理系统”。这个系统的核心是利用SQL(Structured Query Language)来管理和操作数据,为教育机构提供一个高效、准确的学生信息管理平台。SQL是用于...

    PHP实例开发源码——金点网络原创图标在线生成器 PHP版.zip

    4. **数据库交互**:如果项目存储用户的生成记录或设置,可能会用到MySQL或其他SQL数据库,因此需要了解SQL查询、数据存储和检索。 5. **前端技术**:为了提供用户友好的界面,项目可能使用HTML、CSS和JavaScript。...

    数据库高可用性——SQLServer2005数据库复制简单图解[归类].pdf

    数据库复制分为几种类型,包括快照复制、事务复制和合并复制。快照复制是最简单的形式,它提供了一次性的、静态的数据副本。在快照复制中,发布服务器上的数据在特定时间点被捕捉并复制到订阅服务器,订阅者获得的...

    C经典算法之合并排序法

    根据给定的文件信息,我们可以总结出以下关于“C经典算法之合并排序法”的相关知识点: ### 一、概述 本篇文章将介绍一种经典的排序算法——**合并排序法**(Merge Sort),并通过C语言实现该算法。合并排序是一种...

    数据库课程设计实验报告简易餐厅管理系统.doc

    数据库课程设计实验报告——简易餐厅管理系统 在信息技术领域,数据库设计是至关重要的一个环节,尤其在构建信息系统时,如本文档所述的简易餐厅管理系统。这个系统旨在为餐厅提供自动化结账服务,提升运营效率,...

Global site tag (gtag.js) - Google Analytics