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

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

 
阅读更多

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

首先我们这是合并具有相同表结构的数据,所以比较简单一点,直接把数据拿过来就可以了。其次用到的是模糊搜索数据库中所有的表,模糊搜索一开始自己想的有点局限了就卡在这了,其实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中间可以加字符串,其他的都很简单。只要有大方向就按照大方向来肯定会实现,可能会是某个细节上会遇到问题,仔细想一想,查一下也就都解决了。

分享到:
评论

相关推荐

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    金属材料标准的应用数据库MtrRvw

    开发数据库包含标准数据化的成果——数据表、查询和应用程序模块; 开发数据库包含数据库开发的一切成果。 1.2.2 测试数据库: 测试数据库是开发数据库的子集,只包含订制的产品规范和适用产品规范的所有试验标准的...

    支持多数据库的ORM框架ef-orm.zip

    大部分OLTP应用系统到最后都不免要使用SQL/JPQL,然而没有一个很好的方法解决SQL在多种数据库下兼容性的问题。 EF-ORM中采用了独特的SQL解析和改写技术,能够主动检查并确保SQL语句或者SQL片段在各个数据库上的兼容...

    Test_xktools.zip

    根据Excel设置,自动生成创建表、插入数据、读取数据的SQL,导入数据库SQLite(MySQL),脚本自动根据字段所在的位置定位。 到如数据库之后,在数据库中存放,加工,可以根据模版导出到Excel,不受字段所在行列...

    数据库课程设计--工资管理系统.doc

    数据库课程设计 设计题目: 工资管理系统 班 级: 学 号: 姓 名: 任务分配表 "第 一 组"学号 "姓名 "负责部分 "成绩 " "组长 " " "数据库的建表与连接 " " "组员 " " "实验报告完善与界面设计 " " 目录 一 绪论 ·...

    Delphi7编程100例

    动态设置远程数据库的查询参数 在远程数据库中计算统计值 多线程与数据库 使用远程存储过程 数据模块的同步显示 建立Web服务的数据提供端 建立Web服务的数据访问端 开发WebSnap数据库程序 建立...

    Delphi编程100例

    在远程数据库中实现主从表关系 动态设置远程数据库的查询参数 在远程数据库中计算统计值 多线程与数据库 使用远程存储过程 数据模块的同步显示 建立Web服务的数据提供端 建立Web服务的数据访问端 开发WebSnap数据库...

    AS400 RLU编程wrod版

    5.3 生成数据库文件的物理文件 5.4 启动RLU 5.5 定义记录格式 5.6 定义常量字段 5.7 报表标题居中 5.8 加报表头 5.9 定义表头行做为一个记录格式 5.10 定义表头行的字段做常量字段 5.11 定义表头行的每个字段做为...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    5.2.9 REPT——生成重复的字符 172 5.3 合并文本 173 5.3.1 CONCATENATE——将多个文本合并到一处 173 5.4 转换文本格式 174 5.4.1 ASC——将全角字符转换为半角字符 174 5.4.2 WIDECHAR——将半角字符转换为...

    《Delphi7编程100例》代码

    ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态设置选项...生成渐变色窗口背景WINAPM风格磁化窗口软件封面的图片显示制作实现图片的任意角度旋转奇妙的拼图游戏使用PaintBox控件制作画图程序使用...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例070 网页版九九乘法表 104 实例071 读取数组购物车中的数据 105 实例072 图像验证码的生成 106 2.6 跳转语句 107 实例073 控制页面中表情图的输出 107 实例074 控制页面中数据的输出数量 108 实例075 动态改变...

    php网络开发完全手册

    13.1 关系型数据库与关系型数据库系统的 13.1 介绍 204 13.2 关系型数据库系统的结构与运行过程 205 13.2.1 关系型数据库系统的层次结构 205 13.2.2 关系型数据库系统的运行过程 206 13.3 常用的关系型数据库的介绍 ...

    linkbox3——简易php上传直链程序

    最简单的免数据库大众文件上传外链系统,上传后生成直链地址。 本程序可设定不允许上传的文件类型,其余类型均可上传。 站长可自行设置上传大小、允许类型。 使用说明: 1.请用notepad++等软件编辑“index.php”,...

    e商2000 免费 进销存软件 连锁店管理

    财务管理:系统根据业务单据自动生成相关凭证,财务处理完全智能化;方便的应收应付管理;不限定帐套数;结帐后的数据允许回溯 客商管理:可方便的建立企业客商资料库,企业重要的无形资产 权限管理:完整的权限...

    ArcGIS地理信息系统空间分析实验教程

    53实例与练习——制作上海市行政区划图178 第六章GIS空间分析导论183 61空间分析的数据模型183 62GIS空间分析的基本原理与方法186 621栅格数据分析的模式186 622矢量数据分析方法189 623空间统计分析与内插191 624三...

Global site tag (gtag.js) - Google Analytics