资源描述
. .优选. -课程设计报告书专业:信息管理与信息系统课程设计名称:可视化编程技术课程设计题目:高速公路收费系统班级:学号:设计者:指导教师:完成时间:摘要在现代交通越来越便利的同时,高速公路也发挥着越来越重要的作用。中国已经有4万多公里的高速公路,在未来还将翻倍。修建高速公路被各地官员拉入地方经济工作日常首要位置,与1950年后的美国相似,越来越密集的高速网正在促使着中国发生巨大的变化。高速公路收费系统是高速公路管理的重要组成局部。建立智能化的收费系统是加强高速公路管理的一个重要环节。高速公路收费系统解决了高速公路收费业务中由于采取传统方法和手段出现的难以处理的问题,并把管理对象转向信息对象的信息管理系统,把高速公路收费系统推向另一个高度。利用计算机进展高速公路收费系统设计,本文是采用C*作为前台开发工具,SQL Server2021 R2作为后台数据库平台的基于C/S的三层模式的高速公路收费系统。关键词:C*;数据库表;- .word.zl. -目录目录1第一章开发环境和开发工具11.1C*语言简介11.2 开发背景11.3 开发环境2第二章人事管理信息系统的分析与设计32.1 系统需求分析32.2 系统总体设计32.2.1 系统设计目标32.2.2 开发设计思想42.2.3 系统功能模块设计4第三章数据库设计63.1 引入背景63.2 数据库需求分析63.2.1 数据流图73.2.2. 数据字典73.3 数据库概念构造设计103.4 数据库逻辑构造设计143.5 数据库物理构造设计153.5.1 索引的建立主键、外键153.5.2 触发器16第四章系统详细设计与实现174.1 实体类库设计与实现174.2 数据访问层类库设计与实现224.3 业务逻辑层类库设计与实现324.4 界面设计及实现374.4.1 登陆界面及代码374.4.2 主界面及代码38结论50心得体会51参考文献52- .word.zl. -第一章 开发环境和开发工具1.1 C*语言简介C*是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C*是微软公司研究员Anders Hejlsberg的最新成果。C*看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C*与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM组件对象模型是直接集成的,而且它是微软公司 .NET windows网络框架的主角。C*是一种平安的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性例如没有宏以及不允许多重继承。C*综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。C*是一种面向对象的语言,它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和效劳来最大程度地开发利用计算与通讯领域。1.2 开发背景二十年来,收费公路在中国从无到有,弥补了传统公共交通的缺乏,满足了人们快捷、平安、舒适的交通需要,为中国经济的蓬勃开展做出了巨大奉献。正确提醒收费公路在公共效劳方面的标准和限度,处理费用的各种数据,对中国公路建立事业安康开展有重要意义。如今,高速公路的飞速开展,高速公路的行路畅通,正因为这样,高速公路在各种交通运输渠道中占据了主要的地位,这就造成了高速公路收费管理出现了一些问题,不但增加了运营的强度,也增加了高速公路收费工作人员的工作压力。所以,这对现有的收费管理和收费人员提出更多的要求:提高收费效率、降低收费过失,提高收费站管理效劳水平。而以手工为主的传统收费方式已经不能满足当前收费的实际需要。在当今信息化的社会里,作为高新技术之一的C*可视化编程技术和数据库应用技术已成为高速公路信息资源利用和高速公路建立及其现代化管理不可缺少的重要工具,高速公路收费系统便是基于C*和数据库所产生的,相较于传统手工的收费方式它的效率高、过失少,能使管理人员随时查阅数据信息。并能对各种违规行为进展一定的制止,对于各种各样的逃票行为提供证据。高速公路收费系统能够满足我国对于高速公路所提出的大多数要求。1.3 开发环境本文所采用的开发环境主要是基于数据库系统的SQL Server 2021R2和基于面向对象程序设计的C*。SQL Server 2021 R2在Microsoft的数据平台上发布,可以组织管理任何数据,可以将构造化、半构造化和非构造化文档的数据直接存储到数据库中。它可以对数据进展查询、搜索、同步、报告和分析之类的操作引进了一系列新功能帮助各种规模的业务从信息中获取更多价值。经过改进的SQL Server 2021 R2增强了开发能力,提高了可管理性,强化了商业智能及数据仓库。本系统是利用SQL Server 2021R2创立高速收费站上的收费站信息表、职工信息表、收费查询表、道路表、进出站信息表、车辆信息表、车辆流动表、收费卡信息表、收费标准表以及用C*连接数据库用的登录系统表。利用C*和数据库建立连接之后,利用C*中的控件按钮以及一些程序代码实现一些特定的功能,例如员工信息查询、员工信息编辑、车辆信息查询、收费标准查询、收费情况查询等,极提高了高速公路收费管理的效率。第二章 人事管理信息系统的分析与设计 随着计算机技术的飞速开展,计算机在各种收费和管理应用的普及,利用计算机实现高速公路收费的管理势在必行。当前高速公路收费系统正在从C/S构造向B/S构造转移,但是由于平安性等方面的因素,C/S构造的高速公路收费系统仍然占据收费系统的主流。本文所论述的系统也是C/S构造的高速公路收费系统。高速公路收费系统是适应现代化制度要求,推动高速公路收费走向科学化、规化的必要条件。2.1 系统需求分析在现代运输的铁路、公路、水运、航运和管理五种方式中,目前我国公路运输约占全国客、货运输总量的一半以上。近年来,我国高速公路的开展很快,高速公路总里程跃居世界第二位,从而大大改善了公路路网构造,缓解了交通旅游业的开展,推动沿线产业构造调整,加快了中小城镇的发。随着高速公路的建立,收费站数目的不断增加,对现有的收费管理和收费人员提出了新的要求:提高收费效率、降低收费过失,提高收费站管理效劳水平。高速公路收费系统提供了一种理想的解决上述问题的方案,能适应新的收费管理要求。在当今信息化的社会里,如何运用计算机技术、运用好有限的资金,加快速度、高质量地建立高等级公路收费系统,是摆在广阔科技工作者面前一个有待解决的课题。今为解决这一些问题特别写了高速公路收费系统,利用计算机的存取功能及其计算机数据库的功能来实现对数据的有效、高速管理。2.2 系统总体设计2.2.1 系统设计目标本文研究开发的高速公路收费系统用于支持高速公路的收费管理工作,有如下三个方面的目标:支持收费站实现规化的管理。支持收费人员高效率完成车辆收费和信息查询的日常业务,包括车辆的道路信息、车辆信息、增加收费的具体信息和收费详情查看等。支持收费站进展劳动人事管理及其相关方面的科学决策,如领导根据现有的员工情况增加或减少员工人数、修改员工信息等。开发设计思想 基于以上系统设计目标,本文在开发高速公路收费系统时遵循了以下开发设计思想:采用现有的软硬件环境及先进的系统开发方案,从而到达充分利用现有资源,提高系统开发水平和应用效果的目的。尽量到达操作过程中的直观、方便、实用、平安等要求。系统采用C/S体系构造,Clinet(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库效劳器;Server(效劳器端)那么用于提供数据效劳。系统采用三层架构的设计思想,即界面层User Interface layer、业务逻辑层Business Logic Layer、数据访问层Data access layer。界面层:主要对用户的请求承受,以及数据的返回,为客户端提供应用程序的访问。业务逻辑层:是系统架构中表达核心价值的局部,主要负责对数据层的操作。数据访问层:主要是对数据的操作,具体为业务逻辑层或表示层提供数据效劳。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进展数据的添加、删除、修改、备份等操作。系统功能模块设计本系统分为四个模块:系统模块、职工信息管理、收费站信息管理、车辆信息管理。本系统的具体功能模块图如图3-1所示:高速公路收费系统系统设置职工信息收费站信息车辆信息修改密码退出员工信息查询及修改领导信息查询收费站信息查询及更新车辆信息查询及添加收费信息查询及添加各站距离情况查询及更新添加用户收费标准的查询及更新收费卡信息的查询及添加图3-1系统功能模块图第三章 数据库设计3.1 引入背景高速公路收费系统是一个数据库应用系统,有关车辆和收费的所有信息都保存在数据库中。数据库构造设计是高速公路收费系统数据库应用系统开发过程中一个非常重要的环节,设计的好坏将直接对所开发的高速公路收费系统的效率以及实现的效果产生影响。好的数据库构造设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。数据库构造设计主要就是要设计好数据库中各个表的构造,包括信息保存在哪些表格中、各个表的构造如何以及各个表之间的关系。数据库的存在能够完善地管理各种数据库对象,具有强大的数据组织、用户管理、平安检查等功能;可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性较好。由于数据库设计的重要性,人们提出了许多数据库构造设计的技术。3.2 数据库需求分析 数据库需求分析是数据库构造设计的第一个阶段,也是非常重要的一个阶段。在这个阶段主要工作是收集根本数据以及数据处理的流程,为以后进一步设计一打下根底。需求分析主要解决两个问题::. 容要求。调查应用系统用户所需要操作的数据,决定在数据库中存储什么数据。处理要求。调查应用系统用户要求对数据库进展什么样的处理,理清数据库中各种数据之间的关系。3.2.1 数据流图高速公路收费系统顶层图:领导车子提供信息查看进入员工 收费标准一层图: 收费卡 提供信息查询、修改出站处理得到 交还、读卡进站处理 提供信息 查看员工员工 提供收费信息权限距离情况 权限 信息登录各站距离情况改动进入数据读取信息 员工信息3.2.2.数据字典数据字典是对系统中数据的详细描述,是各类数据构造和属性的清单。它与数据流图互为注释。包括五个局部:数据项、数据构造、数据流、数据存储和处理过程。数据项:车辆信息:属性别名类型长度取值围含义说明车辆类别车型号char6主键 not null用于识别车辆的类型,用于收费计算车牌号车牌编号char8唯一唯一标识一辆汽车的关键域职工信息:属性别名类型长度取值围含义说明职工编号工作号char8主键唯一用于唯一标识一位职工信息的关键域职工char10not null用于识别不同的员工性别char2男或女标识职工的性别年龄nchar21850表示每位职工生存的年限职位char4领导或员工用于标识职工的不同分工系统登录:属性别名类型长度取值围含义说明职位角色类别char4领导或员工用于标识登录后的不同权限职工编号用户名char8主键 唯一唯一标识一位职工的关键域密码登录密码char6not null用户登录所需要的通行证收费站信息:属性别名类型长度取值围含义说明收费站号进出站编号char6主键 唯一唯一标识一座收费站的关键域收费站名varchar30not null标识收费站的存在信息地址varchar50not null标识收费站的位置信息联系方式char8not null 收费站的联系信息车辆收费标准:属性别名类型长度取值围含义说明车辆类别车型号char6not null用于标识车辆的类别收费单价realnot null 标识每类车每公里所收单价备注varchar50not null对于所填容进展解释收费卡信息:属性别名类型长度取值围含义说明收费卡号char10主键 唯一标识唯一收费卡的进站编号收费站号char6not null登上高速公路的起始收费站进站时间Date time8not null标识车辆进入起始收费站的时间车辆类别车型号char6not null车辆的类型,用于收费计算收费查询:属性别名类型长度取值围含义说明收费ID进出站IDchar12唯一进入收费站的通道位置及收费次序车辆类别车型号char6not null标识车辆的类型,用于收费计算道路编号道路IDchar20199表示两个收费站间的道路应收费用收费数目float6not null应收费用=收费单价*行驶路程收费人职工编号char8唯一用于唯一标识一位职工信息的关键域各站距离情况:属性别名类型长度取值围含义说明道路编号道路IDchar20199标识两个收费站间的不同道路进站编号收费站号char6取值唯一唯一标识进入高速的收费站出站编号收费站号char6取值唯一唯一标识出高速公路的收费站距离real8not null两个收费站间不同道路的长度道路通行可否通行char2是或否该路是否可以通行数据构造:数据构造名含义说明车辆信息定义了一辆车的相关信息职工信息定义了一位职工的相关信息系统登录定义了登录高速公路收费系统的用户和密码收费站信息介绍了一座收费站的相关信息车辆收费标准介绍了我国及我省规定的高速公路收费标准收费卡信息定义了进站所获通行卡的相关信息车辆收费信息定义了一辆车的具体收费情况各站距离情况不同收费站间的不同道路及距离数据流:数据流名称输入输出员工信息查询职工编号、密码员工信息员工信息更新更新的员工信息员工信息收费卡信息更新车辆提供收费卡收费卡信息收费标准信息查询收费标准信息进站处理各站距离情况查询各站距离信息提供进站处理收费信息查询进站处理收费信息数据存储数据存储名输入数据流输出数据流存取方式员工信息更新的员工信息员工信息存到指定位置收费卡更新的收费卡信息收费卡信息存到指定位置收费标准收费标准信息存到指定位置各站距离各站距离信息存到指定位置收费信息收费信息存到指定位置处理过程:处理过程名处理过程输入数据流输出数据流根本信息查询输入关键属性信息查询根本信息根本信息修改根据所需进展修改信息修改根本信息根本信息添加输入新的信息信息添加根本信息根本信息删除根据所需进展删减信息删除根本信息3.3 数据库概念构造设计概念构造是对现实世界的一种抽象,就是对实际的人、物、事和概念进展进展人为处理,它抽取人民关心的共同特性,忽略非本质的细节,并把这些特性用各种概念准确地加以描述,这些概念组成了某种模型。概念构造设计就是根据需求分析得到的结果对现实世界进展抽象,设计各个局部E-R模型。n 局部E-R图1) 车辆的E-R图车辆车牌号车辆类别年龄性别2) 职工的E-R图职工编号职工姓名职工职位3) 收费站的E-R图联系方式地址收费站名收费站号收费站4) 收费卡的E-R图进站编号进站时间车辆类别收费卡号收费卡备注5) 车辆收费标准E-R图收费标准 收费单价车辆类型6) 各站距离情况E-R图进站编号出站编号道路通行道路编号各站距离情况距离性别7) 员工管理局部的E-R图年龄领导职工姓名职工编号 1管理年龄性别 n职工编号员工职工姓名领导8) 收费站与职工的实体联系图 1管理 n员工系统登录 nn收费查询收费站119) 收费站功能的实体联系图收费站1显示n11显示显示 n收费n收费卡111收、还收费标准各站距离情况 m车辆1n 全局E-R图 1 n n n 1 1 1 n 1 n 1 1 n 1 1 m 1 1 1 m 职工编号职工姓名领导职工编号职工姓名性别年龄管理年龄性别车辆类别员工职位道路编号收费ID收费查询密码系统登录收费人收费时间应收费用职工编号收费站收费站号地址进站时间收费站名联系方式道路编号显示显示显示出站编号收费卡号车辆类型收费距离收费卡进站编号各站距离情况车辆类别收、交进站编号道路通行车辆类别收费标准车牌号收费单价备注车辆3.4 数据库逻辑构造设计概念构造是独立于实际数据模型的信息构造,必须将其转化为逻辑构造后才能进展数据库应用的设计。也就是要将概念上的构造转化为BP数据库系统所支持的实际数据库。数据库逻辑构造管设计的任务是将概念模型转换成特定DBMS所支持的数据模型的过程。一般的逻辑构造分为三步:i. 初始关系模式设计;ii. 关系模式规化;iii. 模式的评价与改进;本系统所对应的关系模式:车辆信息车牌号,车辆类别职工信息职工编号,职工,性别,年龄,职位登录系统职工编号,职工,职位收费查询收费ID,车辆类别,道路编号,应收费用,收费人收费站信息收费站号,收费站名,地址,联系方式收费卡信息收费卡号,进站编号,进站时间,车辆类别各站间距道路编号,进站编号,出站编号,距离,道路通行收费标准车辆类别,收费单价,备注阴影加粗局部为主键根据式定义,对各关系模式进展判断,均符合第三式。3.5 数据库物理构造设计物理构造设计是对于给定的逻辑数据模型,选取了一个最适合应用环境的物理构造的过程。它的任务是为了有效地实现逻辑模式,确定所采取的存储策略。分为确定物理构造和评价物理构造两局部。确定物理构造的步骤:a) 存储记录构造的设计;b) 访问方法的设计;c) 数据存放位置的设计;d) 系统配置的设计;3.5.1索引的建立主键、外键索引是一种可以加快检索的数据库构造,它包含从表或视图的一列或多列生成的键,以及映射到指定数据存储位置的指针。通过创立设计良好的索引,可以显著提高数据库查询和应用程序的性能。虽然索引有大量优点,但一个表中的大量索引会影响插入、删除、更新数据的性能,增加索引调整的本钱,降低系统的响应速度。索引主要分为:聚集索引、非聚集索引、唯一索引、视图索引、全文索引和XML索引。其中唯一索引中,创立PRIMARY KEY或UNIQUE约束时,自动生产唯一索引。表名主键外键车辆信息车牌号车辆类别职工信息职工编号无登录系统职工编号无收费查询收费ID车辆类别、道路编号、收费人收费站信息收费站号无收费卡信息收费卡号车辆类别各站间距道路编号无收费标准车辆类别无触发器触发器属于一种特殊的存储过程,可以在其中包含复杂的SQL语句。触发器与存储过程的区别在于触发器能够自动执行并且不含参数。通常在触发器中编写一段自动执行的程序,用于保证数据操作的完整性,从而扩展了对默认值、约束和规那么的完整性检查。具有a) 自动执行b) 实现比约束更为复杂的完整性要求c) 根据表数据修改前后的状态,根据差异采取相应措施d) 防止恶意的或错误的INSERT、UPDATE和DELETE操作等等优点。本系统使用了如下触发器:1. 实现在收费标准表中更新车辆类别的信息,收费卡信息表、车辆信息表、收费查询表中的相对应的信息会自动更新;2. 保证向车辆信息表中插入信息时,假设车辆类别不符合收费标准中的要求,拒绝插入;3. 实现在职工信息表中删除某一职工时,在登录系统表中的相关信息也被删除;4. 保证在登录系统中添加新记录时,新职工的信息必须存在于职工信息表中;5. 实现在各站间距表中修改道路编号时,收费查询表中相对应的信息会自动修改;第四章 系统详细设计与实现4.1实体类库设计与实现实体类库是是辅助数据库的映射,可以理解为传递数据的载体,主要用于数据的存储。它贯穿于整个架构,负担着在各层次及模块间传递数据的职责本系统一共建立了8个类库,分别为Login 、Staffinformation、Tollgate、Space 、Shoufeibiaozhun、Carinformation 、Cardinformation、Shoufeiquery。Login类:用于提供职工的登录信息,包括职工编号、密码和用户类别。用户类别的不同使不同的职工拥有不同的权限,主要分为领导和员工。publicclassTollgate privatestring _gateID;publicstring GateID get return _gateID; set _gateID = value; /对属性进展定义public Tollgate()/定义无参的构造函数 public Tollgate(string gateID, string gatename, string address, string phone) _gateID = gateID; _gatename = gatename; _address = address; _phone = phone; Staffinformation类:提供职工的具体信息,用于增加、删除、和查询,其中包括职工编号、职工、性别、年龄和职位。领导拥有增加、删除职工信息的权限,员工拥有查询职工信息的权限。publicclassStaffinformation privatestring _staffID;publicstring StaffID get return _staffID; set _staffID = value; public Staffinformation()/定义无参的构造函数 public Staffinformation(string staffID, string name, string sex, string age, string post) _staffID = staffID; _name = name; _sex = sex; _age = age; _post = post; Tollgate类:提供各个收费站的信息,用于增加和查询,其中包括收费站编号、收费站名、收费站的地址和联系方式。领导拥有增加收费站信息的权限,员工拥有查询的权限。publicclassTollgate privatestring _gateID;publicstring GateID get return _gateID; set _gateID = value; public Tollgate()/定义无参的构造函数 public Tollgate(string gateID, string gatename, string address, string phone) _gateID = gateID; _gatename = gatename; _address = address; _phone = phone; Space类:提供各个收费站之间的道路、距离信息,用于增加、修改和查询。其中包括道路编号、起始收费站的编号、终止收费站的编号、两车站间的距离和道路通行情况。领导拥有增加和修改的权限,员工拥有查询的权限。publicclassSpace privatestring _roadID;publicstring RoadID get return _roadID; set _roadID = value; public Space()/定义无参的构造函数 public Space(string roadID, string jinzhanID, string chuzhanID, Single distance, string wayleave) _roadID = roadID; _jinzhanID = jinzhanID; _chuzhanID = chuzhanID; _distance = distance; _wayleave = wayleave; Shoufeibiaozhun类:提供该车站的收费标准,一般为国家标准收费标准。其中包括车辆类型、单价和被子。领导具有查询和根据国家收费标准进展修改的权限,员工具有查询的权限。publicclassShoufeibiaozhun privatestring _cartype;publicstring Cartype get return _cartype; set _cartype = value; public Shoufeibiaozhun()/定义无参的构造函数 public Shoufeibiaozhun(string cartype, Single unitprice, string remark) _cartype = cartype; _unitprice = unitprice; _remark = remark; Carinformation类:提供过路车辆的信息,用于增加和查询。其中包括车牌号和车辆类别。领导对于该表没有权限,员工具有增加和查询的权限。publicclassCarinformation privatestring _carID;publicstring CarID get return _carID; set _carID = value; public Carinformation()/定义无参的构造函数 public Carinformation(string carID, string cartype) _carID = carID; _cartype = cartype; Cardinformation类:提供车辆所拿收费卡的信息,用于增加和查询。其中包括收费卡编号、所进高速公路的收费站编号、进高速公路的时间和车辆类型。领导对于该表没有权限,员工拥有增加和查询的权限。publicclassCardinformation privatestring _cardID;publicstring CardID get return _cardID; set _cardID = value; public Cardinformation()/定义无参的构造函数 public Cardinformation(string cardID, string jinzhanID, DateTime jinzhantime, string cartype) _cardID = cardID; _jinzhanID = jinzhanID; _jinzhantime = jinzhantime; _cartype = cartype; Shoufeiquery类:提供车辆的具体收费信息,用于增加和查询。其中包括收费编号、车辆类型、所走高速的道路编号、应收费用和收费的员工。领导对于该表没有权限,员工拥有增加和查询的权限。publicclassShoufeiquery privatestring _shoufeiID;publicstring ShoufeiID get return _shoufeiID; set _shoufeiID = value; public Shoufeiquery()/定义无参的构造函数 public Shoufeiquery(string shoufeiID,string cartype,string roadID,string cost,string name) _shoufeiID = shoufeiID; _cartype = cartype; _roadID = roadID; _cost = cost; _name = name; 4.2数据访问层类库设计与实现数据访问层有时候也称为是持久层,是所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。主要是对原始数据数据库或者文本文件等存放数据的形式的操作层,是对数据的操作,具体为业务逻辑层或表示层提供数据效劳。本系统中一共建立了9个数据访问层的类库,分别为:Dabase、LoginServer、StaffinformationServer、TollgateServer、SpaceServer、ShoufeibiaozhunServer、CarinformationServer 、CardinformationServer、ShoufeiqueryServer。鉴于大局部类库实现的功能与代码都类似,在这里只贴局部类库的代码。Dabase类:主要是提供数据库的以及在数据库中执行增、删、改、查的代码。publicclassDabase privatestaticstring _connStr = Data Source=.;Initial Catalog=Road;Integrated Security=True;privatestaticSqlConnection sqlcon = null;privatestaticvoid CreateConnection() if (sqlcon = null) sqlcon = newSqlConnection(_connStr); sqlcon.Open(); elseif (sqlcon.State = ConnectionState.Closed | sqlcon.State = ConnectionState.Broken) sqlcon.Close(); sqlcon.Open(); /执行Insert/update/delete,不带参数publicstaticint ExecuteNoQuery(string strsql) int i;try CreateConnection();SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); i = sqlcmd.ExecuteNonQuery(); sqlcon.Close();return i; catch return -1; /执行Insert/update/delete,带参数publicstaticint ExecuteNoQuery(string strsql, paramsSqlParameter param) int i;try CreateConnection();SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon);/sqlcmd.Parameters.Add(param);foreach (SqlParameter par in param) /遍历数组将参数对象添加到操作命令中 sqlcmd.Parameters.Add(par); i = sqlcmd.ExecuteNonQuery();return i; catch return -1; /执行SELECT命令,得到数据表publicstaticDataTable GetTable(string strsql) try CreateConnection();SqlDataAdapter sda = newSqlDataAdapter(strsql, sqlcon);DataSet ds = newDataSet(); sda.Fill(ds, temp); sqlcon.Close();return ds.Tablestemp; catch returnnull; publicstaticDataTable GetTable(string strsql, paramsSqlParameter param) try CreateConnection();SqlDataAdapter sda = newSqlDataAdapter(strsql, sqlcon);foreach (SqlParameter par in param) /遍历数组将参数对象添加到操作命令中 sda.SelectCommand.Parameters.Add(param); DataSet ds = newDataSet(); sda.Fill(ds, temp); sqlcon.Close();return ds.Tablestemp; catch returnnull; publicstaticSqlDataReader GetReader(string strsql) try CreateConnection();SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon);SqlDataReader sdr = sqlcmd.ExecuteReader(CommandBehavior.CloseConnection);return sdr; catch returnnull; publicstaticSqlDataReader GetReader(string strsql, paramsSqlParameter param) try CreateConnection();SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon);foreach (SqlParameter par in param) /遍历数组将参数对象添加到操作命令中 sqlcmd.Parameters.Add(par); SqlDataReader sdr = sqlcmd.ExecuteReader();return sdr; catch returnnull; / 执行统计等命令publicstaticint num(string strsql) int i;try CreateConnection();SqlCommand sqlcmd = newSqlCommand(strsql, sqlcon); i = (int)sqlcmd.ExecuteScalar();return i; catch return 0; / 执行统计等命令publicstaticint num(string strsql, par
展开阅读全文