1、 毕 业 论 文题 目: 甘肃省青少年科技创新大赛 评审专家随机抽取系统的设计与实现 学 院: 计算机科学与工程学院 专 业:计算机科学与技术(物联网技术与应用方向) 毕业年限: 2015 学生姓名: 杨盛培 学 号: 201171060138 指导教师: 陈幼明 I摘 要选定、聘请专家评委是评审工作中的重要环节,甘肃省青少年科技创新大赛评审委员会每年都要聘请一些各行各业的专家来担任大赛评委,而目前人工方式选定、聘请评审专家的过程中可能存在不规范性和人为因素较多等弊病,为了有效的进行专家信息的管理以及公平抽取符合条件的专家,需要建立一套完善的专家信息管理及随机抽取系统。由此,我们毕业设计小组
2、3 人共同设计、开发了一套评审专家自动抽取系统。本系统是基于微软.NET 平台采用 C# 编程语言开发的 C/S 架构应用程序,数据库采用的是 SQL Server 关系型数据库。本系统建立了一个完善、合理的专家信息库,实现了对评审专家的信息化、智能化管理,实现了评审专家的随机抽取、补抽、应急抽取以及发送短信通知并根据专家回复信息确认专家是否同意参评的功能。本系统具有界面友好、简洁明了,方便使用且适用性强,支持多项目、多任务同时抽取,并且抽取条件设置灵活可满足各种筛选条件组合的特点。本文主要阐述了该系统的业务流程分析,数据库设计以及本人所负责的数据库连接、账户登录、专家信息验证、头像保存、抽取
3、、补抽、应急抽取、结果导出成 Excel 表格等功能的实现。关键词:.NET 平台,C/S 架构,评审专家,信息化管理,随机抽取,公平公正IIAbstractSelected and hired expert judges is an important link in the work of the review. The expert review committee of Gansu Province Youth Science Creation Competi- tion have to hire some people from all walks of life to serve
4、as the contest judges every year, and the current manually selected and hired expert review process may exist in non-standard and man-made factors such as more disadvantages. In order to be effective for expert information management and equity extraction with experts, it is necessary to establish a
5、 set of perfect expert information management and random sampling system.Therefore, we graduated from the design team of 3 people developed a set of evaluation expert system of automatic extraction of common design. This system is based on the Microsoft. Net platform with the C# programming language
6、 developed by C / S structure, the application, the database uses is SQL server relational database. The system established a perfect and reasonable expert information database, realize the informatization of expert and intelligent management, realize the experts randomly, draw, emergency extraction
7、 and send text messages to inform and according to expert reply information confirm whether the experts agreed to participate in assessment of the function. The system has friendly interface, concise, easy to use and strong applicability, support multi project, multiple tasks at the same time extrac
8、tion and extraction condition of the flexible settings can meet a variety of characteristics of the combination of screening.This paper mainly discusses the business process of the system analysis, database design, and I was responsible for the database connection, save login account, expert informa
9、tion verification, head, extraction, fill pump, emergency extraction and derived results into Excel spreadsheets and other functions.Keywords: .NET platform, C/S structure, Evaluation experts, Information management, Random, Fair and justIII目 录摘 要 IAbstract .II目 录 .III第一章 绪论 .11.1 系统开发的背景 .11.2 系统开发
10、的意义 .21.3 系统开发环境 .21.4 系统特点 .2第二章 系统分析 .32.1 专家信息库的建立和管理过程分析 .32.1.1 建立专家信息库 32.1.2 管理专家信息库 42.2 抽取业务流程分析 52.2.1 新建和选择项目(任务) 52.2.2 抽取专家 52.2.3 短信通知 52.2.4 专家补抽 52.2.5 应急抽取 62.2.6 结果保存与导出 62.3 整体流程分析 .6第三章 系统设计 .83.1 数据库设计 .83.1.1 SQL Server 简介 .83.1.2 系统数据库表的结构设计 83.1.3 E-R 模型 .133.2 系统首页设计 .153.3
11、专家模块设计 163.4 管理员模块设计 .173.5 抽取模块设计 .18第四章 系统实现 204.1 数据库连接的实现 .204.2 登录功能的实现 .214.3 专家注册信息验证功能的实现 .224.4 专家头像保存的实现 234.5 抽取时筛选功能的实现 .244.6 随机抽取功能的实现 .254.7 结果导出为 Excel 表格的实现 .26第五章 总结 28参考文献 .29IV致 谢 .301第一章 绪论1.1 系统开发的背景全国青少年科技创新大赛(简称:创新大赛)是一项具有 20 多年历史的全国性青少年科技创新成果和科学探究项目的综合性科技竞赛,是面向在校中小学生开展的具有示范性
12、和导向性的科技教育活动之一,是目前我国中小学各类科技活动优秀成果集中展示的一种形式。它创立于 1982 年,开始是每两年一届,而后改为每年一届,并且每年一个主题。举办创新大赛的根本宗旨在于推动青少年科技活动的蓬勃开展,培养青少年的创新精神和实践能力,提高青少年的科技素质,鼓励优秀人才的涌现,提高科技辅导员队伍的科学素质和技能,推进科技教育事业的普及与发展。经过 20 多年的不断发展和完善,大赛积累了丰富的经验,在活动内容、活动形式等各方面不断汲取国内外成功的经验,使创新大赛能够紧紧把握时代的脉搏,体现时代精神,围绕青少年创新精神和实践能力的培养,做出了特色,做出了品牌,在广大青少年和社会各界中
13、产生了广泛而深远的影响。目前全国青少年科技创新大赛已经成为我国国内面向在校中小学生开展的规模最大、层次最高的青少年科技教育活动。甘肃省青少年科技创新大赛,又称全国青少年科技创新大赛(甘肃赛区) ,是由甘肃省科学技术协会、甘肃省教育厅、甘肃省科技厅、甘肃省发展和改革委员会、甘肃省环境保护厅、甘肃省体育局、甘肃省共青团省委、甘肃省妇女联合会等八个部门共同举办。评审工作是创新大赛中的重要环节,每一次的评审工作都是一个系统而繁琐的过程。要收集评审资料,制定评定标准,组织专家评委评审,最后为项目打分确定成绩,发布评审结果,通常要花费大量的时间和精力,评委都是由各个学科领域的专家组成,如果某些评审专家与评
14、定对象之间存在过多的社会联系,就有可能存在不公正性,因此选定评审专家备受关注。目前人工方式选定、聘请评审专家的过程中可能存在不规范性和不透明性,人为因素较多等弊病。而评审工作是否公平、公正影响着大赛的自身利益,影响到广大师生对大赛宗旨的信任度。为了加强对创新大赛评审工作的监督管理,更好地贯彻评审工作“公平、公正”的原则,为了有效的进行专家信息的管理以及公平抽取符合条件的专家,需要建立一套健全的专家信息管理以及评审专家随机抽取系统。甘肃省科技创新大赛评审专家抽取系统由此应运而生。21.2 系统开发的意义建立了一个完善、合理的评审专家信息库,实现了对评审专家进行信息化、智能化的管理;设置了科学实用
15、的筛选性查询条件,保证了评审专家抽取的随机性、合理性,减少了人为的干预;加强了对创新大赛评审工作的监督管理,更好地贯彻评审工作“公平、公正”的原则。1.3 系统开发环境基于微软.NET 平台采用 C/S 架构、C# 编程语言开发,数据库采用的是SQL Server 关系型数据库。1.4 系统特点系统界面友好,简洁明了,方便使用且适用性强;支持多项目、多任务同时抽取;抽取条件设置灵活,可满足专家年龄、从业年限、学历、专业、职称、所属行业等各种复合条件的组合;支持专家补抽、应急抽取功能,解决有些专家无法到会的现实问题;能根据项目要求随机抽取评审专家,由短信通知系统发送短信并根据专家回复信息确认专家
16、是否同意参评。3第二章 系统分析2.1 专家信息库的建立和管理过程分析2.1.1 建立专家信息库专家信息库中每个专家的个人信息包括:姓名、性别、民族、出生日期、头像、身份证号、学历、职称、职务、从业年限、工作单位、所属行业、毕业院校、专业、手机号码、固定座机、电子邮箱、现居住地。专家个人信息的入库方式由如下两种方式:专家自己注册专家点开甘肃省青少年科技创新大赛评审专家自动抽取系统,进入专家信息注册界面如实填写个人信息,填写完毕后提交。此种方式专家自己注册后需由系统管理员审核,审核通过后则该专家信息自动入库。图 2-1 专家自己注册流程图4管理员添加专家将自己个人信息以纸质形式交给管理员,由管理
17、员审核信息真假后登录系统将专家信息录入。此种方式管理员一旦录入,专家信息立即入库。图 2-2 管理员添加专家流程图2.1.2 管理专家信息库专家信息库的管理包括修改专家信息和删除专家。修改专家信息可由管理员修改或者专家自己登录系统修改,专家自己修改后不需管理员审核;删除专家则只有一个超级管理员才有权限操作。5图 2-3 专家信息库管理流程图2.2 抽取业务流程分析在评审专家的抽取业务流程中要实现的功能主要有新建和选择项目(任务) 、抽取专家、短信通知、专家补抽、应急抽取、将结果保存与导出。2.2.1 新建和选择项目(任务)首先,操作人员需新建一个项目(任务) ,设置项目(任务)的评审日期、项目
18、名称、项目详细说明,然后选择该项目。2.2.2 抽取专家选择项目(任务)后再抽取专家,在抽取专家界面中输入要抽取的专家人数、设置相应的抽取条件,如:专家年龄、从业年限、学历、专业、职称、所属行业等。2.2.3 短信通知当项目(任务)抽取专家后,由系统向被抽取的专家发送短信通知信息,再根据专家回复信息确认专家是否同意参评。2.2.4 专家补抽项目(任务)抽取的专家由于种种原因无法出席参评,或是大赛该项目(任务)后来又决定增加评审专家人数,则操作人员可以通过专家补抽的功能继续为项目(任务)抽取评审专家。62.2.5 应急抽取项目(任务)抽取的专家被抽取后且同意出席参评,但在评审当天临时有事不能继续
19、参评,则操作人员可通过应急抽取功能临时指定某个当天能参评的专家,将他抽取为评审专家。2.2.6 结果保存与导出操作人员将项目(任务)抽取专家的最终结果保存、导出成 Excel 表格。操作员可以不是系统管理员,但必须由系统管理员提供通行口令。抽取业务流程图如下:图 2-4 抽取业务流程图2.3 整体流程分析专家可通过自己注册和向管理员申请由管理员添加两种方式进入专家信息库,只有进入专家信息库的专家才具有被抽取参与大赛评审的资格。创建一个新的项目(任务)后操作员可立即进行评审专家的抽取操作,也可在已有项目(任务)中选择一个项目(任务)进行专家补抽、应急抽取等操作。抽取条件有专家年龄、从业年限、学历
20、、专业、职称、所属行业等,可选择一个或多个条件,条件之间定义为“与”关系,每次选择一个条件之后都可以看到满足抽取条件的专家总人数。专家确认是否参评可通过直接回复短信、登录系统确认、联系操作员由操7作员操作 3 种方式。操作员可以对抽取出的专家进行人工判断是否符合评标资格,当其不符合时,抽取人可在现场监督下取消某专家的评标资格,同时说明取消的原因。最终将结果导出成成 Excel 表格,打印并公布。系统的整体流程图如下:图 2-5 系统整体流程图8第三章 系统设计3.1 数据库设计3.1.1 SQL Server 简介SQL Server 是由 Microsoft 开发和推广的关系数据库管理系统(
21、DBMS),它最初是由 Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于1988 年推出了第一个 OS/2 版本。它是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统。SQL Server 数据库的主要特性如下:(1)高性能设计,可充分利用 Windows NT 的优势。(2)系统管理先进,支持 Windows 图形化管理工具,支持本地和远程的系统管理和配置。(3)强壮的事务处理功能,采用各种方法保证数据的完整性。(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的 SQL 语言。 SQL Server 以其内置的数据复制功
22、能、强大的管理工具、与 Internet 的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。3.1.2 系统数据库表的结构设计在开发系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱。数据库设计要遵循一些规则,一个好的数据库应满足一些严格的约束和要求,尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系,实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。本系统从实际出发,经过仔
23、细地设计,得到各表的设计如表 3-13-12所示。9表 3-1 系统管理员表(manager_login)字段名 数据类型 是否为空 默认值 备注 字段说明Name nchar(18) N 主键 用户名Password nchar(18) N 密码leixing int N 2 类型flag int N 0 状态time varchar(50) N 本次为第一次登录! 上次登录时间系统管理员表是用来保存系统管理员账号信息的,其中类型为 1 是超级管理员、类型为 2 是普通管理员。超级管理员具备添加其他普通管理员、删除专家的权限。登录状态为 0 表示未登录、登录状态为 1 表示当前已登录。表 3
24、-2 专家信息表(zhuanjia_information)字段名 数据类型 是否为空 默认值 备注 字段说明Bianhao int N 从 62001自动增长 主键 编号Name varchar(50) N 姓名Sex nchar(2) N 约束 性别Birthday datetime N 出生日期Nationlity varchar(50) N 约束 民族IC_card nchar(18) N 唯一 身份证号Job varchar(50) N 职务Job_grade nchar(6) N 约束 职称Industry varchar(50) N 所属行业Working_year int N
25、工作年限Company varchar(50) N 工作单位Degree nchar(4) N 约束 最高学历College varchar(50) N 毕业院校Major varchar(50) N 专业大类Phone_number nchar(11) N 唯一外键 手机号码Tell_phone varchar(50) Y 固定座机Email varchar(50) N 唯一 电子邮箱City varchar(50) Y 现居住地Time datetime N 入库时间picture image Y 专家头像10表 3-3 专家登录表(zhuanjia_login)字段名 数据类型 是否为空
26、 默认值 备注 字段说明Name int N 自动增长 主键 用户名Password varchar(50) N 密码flag int N 0 登录状态time varchar(50) N 本次为第一次登录! 上次登录时间登录状态为 0 表示未登录、登录状态为 1 表示当前已登录。表 3-4 项目信息表(xiangmu)字段名 数据类型 是否为空 默认值 备注 字段说明XM_ID nchar(4) N 主键 项目编号Name varchar(50) N 项目名称time datetime N 评审日期cr_time datetime N 创建时间chouqu int N 0 抽取次数bucho
27、u int N 0 不抽次数shuoming varchar(50) Y 项目说明表 3-5 chouqu_temp 表字段名 数据类型 是否为空 默认值 备注 字段说明Bianhao int N 专家编号ID int N 自动增长 对应的数字chouqu_temp 表用来保存抽取时所有满足抽取条件的专家编号,每个编号对应一个数字。表 3-6 chouqu_random 表字段名 数据类型 是否为空 默认值 备注 字段说明ID int N 抽取产生的随机数字chouqu_random 表用来记录随机抽取过程中产生的随机数,该随机数最大为满足抽取条件的专家人数。将 chouqu_random 表
28、与 chouqu_temp 表自然连接即可得到随机抽取的专家编号。11表 3-7 buchou_temp 表字段名 数据类型 是否为空 默认值 备注 字段说明Bianhao int N 专家编号ID int N 自动增长 对应的数字buchou_temp 表用来保存补抽时所有满足抽取条件的专家编号,并且每个编号对应一个数字。表 3-8 buchou_random 表字段名 数据类型 是否为空 默认值 备注 字段说明ID int N 补抽产生的随机数字buchou_random 表用来记录补抽时随机抽取过程中产生的随机数,该随机数最大为满足抽取条件的专家人数。将 buchou_random 表与
29、 buchou_temp 表自然连接即可得到补抽的专家编号。表 3-9 抽取结果表(result_chouqu)字段名 数据类型 是否为空 默认值 备注 字段说明XM_ID nchar(4) N 主键 项目编号XM_name varchar(50) N 项目名称XM_time datetime N 项目评审日期Bianhao int N 主键 专家编号Phone_number nchar(11) N 手机号码flag_chouqu nchar(4) N 约束 抽取类型flag_sts nchar(8) N 约束 确认状态flag_email nchar(8) N 约束 短信发送状态beizhu
30、 varchar(50) Y 备注time datetime N 抽取时间ID int N ID抽取结果表将每个项目的项目编号、项目名称、评审日期以及该项目抽取、补抽、应急抽取的专家编号和手机号码保存。其中抽取类型共 3 种(即抽取、补抽、应急) ,确认状态共 3 种(即等待确认、未能参加、确认参加) ,短信发送状态共 4 种(即未发送、等待发送、发送成功、发送失败) 。12表 3-10 发送短信表(SMS)字段名 数据类型 是否为空 默认值 备注 字段说明SysNo int N 自动增长 主键 编号CellNumber varchar(20) N 目标手机号码SMSContent varch
31、ar(5000) N 短信内容Priority smallint N 优先级RetryCount smallint N 重试次数CreateTime smalldatetime N 短信创建时间HandleTime smalldatetime Y 短信发送时间Status smallint N 发送状态ToCom int Y 发送端口号SendTime smalldatetime Y 短信处理时间XM_ID nchar(4) Y 项目编号表 3-11 接收短信表(SMSRecv)字段名 数据类型 是否为空 默认值 备注 字段说明SysNo int N 自动增长 主键 编号CellNumber
32、varchar(20) N 发送方手机号码SMSContent varchar(5000) N 收到的短信内容SendTime smalldatetime N 短信收到时间HandleTime smalldatetime Y 短信发送时间FromCom int Y 接收端口号表 3-12 通行口令表(pass_num)字段名 数据类型 是否为空 默认值 备注 字段说明US_num nchar(18) N 自动增长 获取口令管理员账号K_num nchar(5) N 主键 口令flag int N 0 口令使用状态time datetime N 口令创建时间通行口令表用来保存管理员获取的口令,该
33、口令是一个随机获取的 5 位数,只能使用一次,其中口令使用状态为 0 代表未使用,口令使用状态为 1 代表已经使用。133.1.3 E-R 模型图 3-1 专家实体及其属性图图 3-2 项目实体及其属性图14图 3-3 抽取结果实体及其属性图图 3-4 关系的参照图图 3-5 实体及其联系图153.2 系统首页设计在系统首页,有专家登录、管理员登录、自动抽取 3 个模块,分别实现相应的功能。图 3-6 系统首页点击专家登录或管理员登录按钮,进入专家登录入口或管理员登录入口,其中专家登录入口如下图:图 3-7 专家登录入口163.3 专家模块设计专家模块有专家注册界面和专家主界面两大部分组成。图
34、 3-8 专家注册界面图 3-9 专家主界面17在专家主界面专家可以看到自己的基本信息和抽取记录,并可选择相应的项目(任务)决定是否同意参加。此外,点击修改密码按钮即可修改密码,点击详细信息按钮即可维护自己的个人信息。3.4 管理员模块设计在管理员模块主界面中,有修改密码、添加管理员、新增专家、获取通行口令等功能。本系统的管理员分为超级管理员和普通管理员两种。本系统只有一个超级管理员 admin ,只有超级管理员才能添加、删除其他普通管理员。只有超级管理员能获取口令,然后提供给操作员,操作员凭此口令进入抽取模块。删除专家也只有超级管理员才有权限,并且当专家有被项目(任务)抽取记录时是不能被删除
35、的。图 3-10 管理员主界面183.5 抽取模块设计在抽取模块主界面中有新建或选择项目(任务) 、抽取专家、短信通知、专家补抽、应急抽取、导出成 Excel 表格等功能。图 3-11 抽取模块主界面图 3-12 应急抽取19图 3-13 专家抽取、补抽图 3-14 短信通知20第四章 系统实现本章主要讲述了本人在甘肃省青少年科技创新大赛中负责的部分功能的实现及其关键代码描述。4.1 数据库连接的实现本系统将要连接的数据库配置保存在外部文件 config.xml中。(local)zhuanjiaxitongsa19920205数据库连接实现的关键代码如下:xml_class xc = new
36、xml_class();xc.XmlOperator(“config.xml“);string Server = myDc.SelectSingleNode(“config“).SelectSingleNode(“Server“).InnerText;string DATABASE = myDc.SelectSingleNode(“config“).SelectSingleNode(“DATABASE“).InnerText;string UID = myDc.SelectSingleNode(“config“).SelectSingleNode(“UID“).InnerText;string
37、 PWD = myDc.SelectSingleNode(“config“).SelectSingleNode(“PWD“).InnerText;String connString = “Server = “ + xc.Server + “; DATABASE =“ + xc.DATABASE + “; UID = “ + xc.UID + “; PWD = “ + xc.PWD;SqlConnection conn = new SqlConnection(connString);SqlCommand cmdCheck = new SqlCommand(sqlCheck, conn);try
38、conn.Open();cmdCheck = new SqlCommand(sqlCheck, conn);cmdCheck.ExecuteNonQuery();catch (Exception ex)MessageBox.Show(ex.Message);return;finally conn.Close();214.2 登录功能的实现系统管理员登录时查询的是 managar_login 表,专家登录时查询的是zhuanjia_login 表。其中管理员登录实现的关键代码如下:if (Program.username.Equals(tbName.Text)if (Program.passwo
39、rd.Equals(tbPass.Text)if (Program.user_flag = 0)String sqlCheck = “UPDATE manager_login SET flag = 1 WHERE Name= “ + tbName.Text.ToString().Trim() + “;re_flag(Program.connString, sqlCheck);Form_manager manager = new Form_manager();this.Hide();manager.ShowDialog();sqlCheck = “UPDATE manager_login SET
40、 flag = 0 WHERE Name= “ + tbName.Text.ToString().Trim() + “;re_flag(Program.connString, sqlCheck);tbName.Text = “;tbPass.Text = “;this.close_pd();elseMessageBox.Show(“当前账号已登录!“, “登录错误!“);elseMessageBox.Show(“对不起,您输入的密码不正确!“, “登录错误!“);elseMessageBox.Show(“对不起,您输入的账号未经过系统认证!“, “登录错误!“);return;224.3 专家
41、注册信息验证功能的实现 身份证号码格式验证身份证号码为 18 位数或 17 位数+X,采用正则表达式验证。实现的关键代码如下:string icStr = “(d18$|d17(d|X|x)$“;Regex icReg = new Regex(icStr);if (!icReg.IsMatch(textBox3.Text.ToString().Trim()MessageBox.Show(“您输入的身份证号码不是18位数字或17位数字加x!“);return; 手机号码格式验证手机号码为 11 位,采用正则表达式验证。实现的关键代码如下:string phoStr = “0-911,11“;Re
42、gex phoReg = new Regex(phoStr);if (!phoReg.IsMatch(textBox10.Text.ToString().Trim()MessageBox.Show(“手机号码格式不正确!“);return; 邮箱格式合法性验证邮箱格式合法性采用正则表达式验证。实现的关键代码如下:string emailStr = “(w-.+)(0-91,3.0-91,3.0-91,3.)|(w-+.)+)(a-zA-Z2,4|0-91,3)(?)$“;Regex emailReg = new Regex(emailStr);if(!emailReg.IsMatch(text
43、Box12.Text.ToString().Trim()MessageBox.Show(“电子邮件格式不正确!“);return;234.4 专家头像保存的实现打开头像文件实现的关键代码如下:openFileDialog1.Filter = “*.jpg|*.jpg|*.bmp|*.bmp“;if (openFileDialog1.ShowDialog() = DialogResult.OK)trypictureBox1.Image = System.Drawing.Image.FromFile(openFileDialog1.FileName);catchMessageBox.Show(“您
44、选择的图片不能被读取或文件类型不对!“,“错误“,MessageBoxButtons.OK,MessageBoxIcon.Warning);return;将头像文件以二进制形式流保存到数据库实现的关键代码如下:public void saveimage(string IC_C, OpenFileDialog openF)string str = openF.FileName.ToString();/将图片以文件流的形式进行保存FileStream fs = new FileStream(str,FileMode.Open,FileAccess.Read);BinaryReader br = n
45、ew BinaryReader(fs);byte imgBytesIn = br.ReadBytes(int)fs.Length);SqlConnection conn = new SqlConnection(Program.connString);tryconn.Open();StringBuilder strSql = new StringBuilder();if (Program.flag_init = -1) /专家自己注册strSql.Append(“update zhuanjia_temp_information set picture = Photo where IC_card
46、= “ + IC_C + “);if (Program.flag_init = 1) /管理员添加strSql.Append(“update zhuanjia_information set picture = Photo where IC_card = “ + IC_C + “);SqlCommand cmdCheck = new SqlCommand(strSql.ToString(), conn);cmdCheck.Parameters.Add(“Photo“, SqlDbType.Binary).Value = 24imgBytesIn;cmdCheck.ExecuteNonQuery
47、();catch (Exception ex)MessageBox.Show(ex.Message);return;finallyconn.Close();4.5 抽取时筛选功能的实现 年龄年龄筛选条件设置为不限、30 岁以下、50 岁以上、30 与 50 岁之间,每次抽取时将满足相应年龄筛选条件的专家编号保存在视图 v_age 中。 从业年限从业年限设置为不限、5 年以上、10 年以上、15 年以上、20 年以上 4 个分段,每次抽取时将满足相应从业年限筛选条件的专家编号保存在视图v_xk_year 中。 职称职称筛选条件设置为不限、高级、中级、初级,每次抽取时将满足相应职称筛选条件的专家编
48、号保存在视图 v_zhicheng 中。 学历学历筛选条件设置为不限、博士、硕士及以上、本科及以上,每次抽取时将满足相应学历筛选条件的专家编号保存在视图 v_xueli 中。 所属行业所属行业设置为从下拉栏中选择,每次抽取时将满足相应所属行业筛选条件的专家编号保存在视图 v_hangye 中。 专业大类专业大类设置为从下拉栏中选择,每次抽取时将满足相应专业大类筛选条件的专家编号保存在视图 v_zhuanye 中。25最终将视图v_age、v_xk_year、v_zhicheng、v_xueli、v_hangye、v_zhuanye 自然连接得到视图 v_temp_zhuanja(即得到满足所有筛选条件的专家编号) ,而视图v_rest_zhuanja 保存的是当天没有抽取记录的专家编号,v_temp_zhuanja 和v_rest_zhuanja 自然连接即得到所有满足筛选条件且当天没有抽取记录的专家编号。4.6 随机抽取功能的实现抽取时将满足筛选条件且当天没有抽取记录的 m 个专家编号保存到表chouqu_temp 中,每个专家编号分别对应一个数字 1 至 m。随机抽取时从这 m 个数字