物价指数管理系统开发文档.doc_第1页
物价指数管理系统开发文档.doc_第2页
物价指数管理系统开发文档.doc_第3页
物价指数管理系统开发文档.doc_第4页
物价指数管理系统开发文档.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物价指数管理系统摘要随着网络技术的高速发展,计算机应用的普及,利用计算机对物价指数的日常工作进行管理势在必行。虽然目前很多大型的物价指数已经有一整套比较完善的管理系统,但是在一些中小型的物价指数中,大部分工作仍需要手工完成,工作起来效率比较低,用户不能及时了解物价指数内各类指数的变动情况,用户需要的物价指数难以在短时间内找到,不便于动态及时地了解物价浮动。本文论述了基于ASP.NET+SQL Server 2000的物价指数管理系统的实现思路和开发过程,包括需求分析、系统设计、开发环境、系统实现等方面。目录1 开发背景12 需求分析13 系统设计13.1 系统目标13.2 业务流程图23.3 系统功能结构图24 开发及运行环境25 数据库设计35.1 数据库概要设计35.2 数据库逻辑结构设计66 编码及实现86.1 公共类设计86.1.1 createCon方法86.1.2 execSQL方法96.1.3 seleSQL方法96.1.4 getDataset方法106.1.5 getRow方法106.2 网站首页设计106.2.1 网站首页概述106.2.2 网站首页技术分析116.2.3 网站首页实现过程116.3 管理员设置模块136.3.1 管理员设置模块概述136.3.2 管理员设置模块技术分析146.3.3 查看管理员信息页的实现过程146.3.4 管理员权限设置页的实现过程156.3.5 单元测试176.4 物价指数管理模块设计176.4.1 物价指数档案管理模块概述176.4.2 物价指数档案管理模块技术分析186.4.3 查看物价指数详细信息页面的实现过程186.4.4 添加和修改物价指数信息页面的实现过程201 开发背景随着现代物价指数流通市场竞争的愈演愈烈,如何以一种新的管理方式提高物价指数流通信息的反馈速度,降低库存占用,加快资金周转,提高工作效率,已经成为物价指数企业提高竞争力的关键。信息技术的发展给物价指数企业的管理带来了新的力量,通过物价指数管理系统对物价指数企业经营运作的全程管理,不仅使企业摆脱了人工管理所固有的一系列弊端和问题,更重要的是提高了工作效率,进而提高了企业的经济效益。通过管理系统对企业的管理,为企业的发展提供了大量的、关键性的数据,企业根据这些数据,可以及时作出决策,进行调整,使之能够更好地把握市场的销售规律,适应市场变化,在激烈的行业竞争中赢得一席之地。2 需求分析改革开放以来,我国农产品批发市场从小到大、从自发式到网络化,逐步形成体系,在农业和农村经济乃至国民经济发展中发挥着越来越大的作用。农产品批发市场经过公开竞争形成的批发价格,充分反映了农产品的供求规律和价值规律,发挥了指导生产、促进流通和引导消费的重要作用。首先确定指数内容。根据农产品批发市场的现状和未来发展趋势,全国农产品价格指数在保证现实需要、兼顾现有信息采集条件及指数编制理论和方法的基础上,主要内容包括各品种全国价格个体指数、农产品小类价格指数(粮食、植物油、蔬菜、水果、畜产品、水产品)、农产品大类价格指数(粮油产品价格指数、菜篮子产品价格指数)和全国农产品价格总指数。这些指数从个体到类综合,再从类综合到整体农产品的总综合,从而形成逐步综合的农产品价格指数体系 3 系统设计3.1 系统目标根据物价指数日常物价指数管理工作的需求好物价指数借阅的管理流程,该系统实施后,应达到以下目标。1. 界面设计友好、美观,数据存储安全、可靠。2. 基本信息设置保证物价指数信息好用户信息的分类管理。3. 强大的查询功能,保证数据查询的灵活性。4. 实现对物价指数全程数据信息跟踪。5. 设置用户和物价指数排行榜,为物价指数管理提供真实的数据信息。6. 提供数据提醒功能,使管理者可以及时了解已经到期的物价指数信息。7. 提供管理员修改自己密码的功能,保证系统的安全性。8. 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。9. 采用人机对话的操作方式,方便管理员的日常操作。10. 系统最大限度地实现了易维护性和易操作性。3.2 业务流程图物价指数管理系统的系统流程如图3-1所示。用户物价指数借阅物价指数续借物价指数归还管理员管理物价指数档案信息管理用户档案信息用户档案获取用户信息物价指数档案物价指数借阅档案完成物价指数续借档案完成物价指数借阅根据用户信息获取借阅物价指数信息归还相关物价指数物价指数归还档案图3-1 系统流程图3.3 系统功能结构图根据物价指数管理系统的特点,可以将其分为系统设置、用户管理、物价指数管理、物价指数借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图3-2所示。物价指数管理系统系统设置用户管理物价指数管理物价指数借还系统查询物价指数信息管理员设置书架设置用户类型管理用户档案管理物价指数类型管理物价指数档案管理物价指数借阅物价指数续借物价指数归还物价指数档案查询物价指数借阅查询更改口令退出系统图3-2 系统功能结构图4 开发及运行环境1. 网站开发环境网站开发环境:Microsoft Visual S 2005集成开发环境网站开发语言:ASP.NET+C#网站后台数据库:SQL Server 2000开发环境运行平台:Windows XP /Windows Server 20032. 网站运行环境1) 服务器端操作系统:Windows Server 2003Web服务器:Internet信息服务管理器数据库服务器:SQL Server 2000浏览器:Internet Explorer 6.0网站服务器运行环境:Microsoft .NET Framework SDK v2.02) 客户端浏览器:Internet Explorer 6.0分辨率:最佳效果1024X7685 数据库设计本系统采用SQL Server 2000数据库,名称为db_tsrj,其中包含9张表。下面分别说明数据库的概要设计及逻辑设计。5.1 数据库概要设计通过对本系统进行的需求分析、系统流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。只有系统分配的用户才可以操作物价指数管理系统,而用户的权限又各不相同。管理员权限设置信息实体E-R图如图5-1所示。管理员权限设置物价指数借还权限系统查询权限物价指数管理权限管理员名称系统设置权限用户管理权限图5-1 管理员权限设置信息实体E-R图物价指数借阅信息实体,用于存储所有物价指数借阅情况的信息,以准确地记录每本物价指数的借阅情况。物价指数借阅信息实体E-R图如图5-2所示。物价指数借阅信息用户姓名是否归还应还日期物价指数条形码物价指数名称借阅日期用户条形码图5-2 物价指数借阅信息实体E-R图物价指数对物价指数的分类,通常是将不同类型的物价指数分别放置在相应类型的书架上。书架信息实体,用于存储物价指数中所有的书架信息。书架信息实体E-R图如图5-3所示。不同的物价指数,会有不同的物价指数信息。对这些物价指数信息进行详细的记录,方便了物价指数的分类好查询。物价指数信息实体,用于存储所有物价指数的相关信息。物价指数信息实体E-R图如图5-4所示。物价指数信息物价指数价格借阅次数书架类别物价指数条形码物价指数名称物价指数类型出版社名称作者名称图5-4 物价指数信息实体E-R图物价指数中会有不同类型的物价指数,为了避免物价指数归类发生混乱,必须建立一个物价指数类型信息实体,用于存储物价指数的类型信息。物价指数类型信息实体E-R图如图5-5所示。物价指数类型类型编号类型名称可借天数图5-5 物价指数类型信息实体E-R图为了记录物价指数的历史背景及其相关的信息,需要建立一个物价指数信息实体,用于存储与物价指数有关的信息。物价指数信息实体E-R图如图5-6所示。物价指数信息建馆时间备注联系地址物价指数名称馆长联系电话电子邮件网址图5-6 物价指数信息实体E-R图当有用户借阅物价指数时,要对用户的各项信息进行记录,以方便归还物价指数和已借阅物价指数的历史查询。用户信息实体,用于存储所有借阅物价指数的用户信息。用户信息实体E-R图如图5-7所示。用户信息电子邮件备注用户类型用户条形码用户名称用户性别证件类型联系电话证件号码图5-7 用户信息实体E-R图在用户群体中,会有不同的分类,例如借阅物价指数的用户可能是教师、学生和市民等,所以对用户人群进行有效的分类是至关重要的。用户类型信息实体,用于存储用户的类型信息。用户类型信息实体E-R图如图5-8所示。用户类型信息类型编号类型名称可借数量图5-8 用户类型信息实体E-R图当管理员登录物价指数管理系统时,需要通过登录窗口验证成功后才能进入系统主页。管理员信息实体,用于存储管理员的登录名称和登录密码。管理员信息实体E-R图如图5-9所示。管理员信息管理员编号管理员名称管理员密码图5-9 管理员信息实体E-R图5.2 数据库逻辑结构设计根据实体E-R图,设计出数据表的结构。以下是主要数据表的数据结构和用途。1. tb_admSet (管理员权限设置表)表tb_admSet用于保存与管理员权限设置相关的信息,该表的结构如表5-1所示。表5-1 管理员权限设置表字段名数据类型长度主键否描述userNamevarchar80否管理员名称systemSetbit1否系统设置readerManagebit1否用户管理bookManagebit1否物价指数管理bookBorrowbit1否物价指数借还systemSearchbit1否系统查询2. tb_bookBorrow(物价指数借阅表)tb_bookBorrow用于保存所有已借阅物价指数的信息,该表的结构如表5-2所示。表5-2 物价指数借阅表字段名数据类型长度主键否描述bookBarCodevarchar100否物价指数条形码bookNamevarchar100否物价指数名称borrowTimedatetime8否借阅日期returnTimedatetime8否应还日期readerBarCodevarchar50否用户条形码readerNamevarchar20否用户姓名isReturnbit1否是否归还3. tb_bookcase (书架信息表)tb_bookcase用于保存书架的详细信息,该表的结构如表5-3所示。表5-3 书架信息表字段名数据类型长度主键否描述bookcaseIDInt4是书架编号bookcaseNamevarchar80否书架名称4. tb_bookInfo (物价指数信息表)tb_bookInfo用于保存与物价指数相关的所有信息,该表的结构如表5-4所示。表5-4 物价指数信息表字段名数据类型长度主键否描述bookBarCodevarchar100是物价指数条形码bookNamevarchar100否物价指数名称bookTypeint4否物价指数类型Bookcaseint4否书架类别bookConcernvarchar100否出版社名称Authorvarchar80否作者名称pricemoney8否物价指数价格borrowSumint4否借阅次数5. tb_bookType (物价指数类型信息表)表tb_bookType 用于保存物价指数类型信息,该表的结构如表5-5所示。表5-5 物价指数类型信息表字段名数据类型长度主键否描述typeIDint4否物价指数类型编号typeNamevarchar50否类型名称borrowDayint4否可借天数6. tb_library (物价指数信息表)表tb_library 用于保存与物价指数相关信息,该表的结构如表5-6所示。表5-6 物价指数信息表字段名数据类型长度主键否描述libraryNamevarchar80否物价指数名称curatorvarchar80否馆长名称telvarchar100否联系电话addressvarchar200否联系地址emailvarchar100否电子邮件netvarchar200否网址upbuildTimedatetime8否建馆时间remarkvarchar500否备注7. tb_readerInfo (用户信息表)表tb_readerInfo 用于保存所有用户信息,该表的结构如表5-7所示。表5-7 用户信息表字段名数据类型长度主键否描述readerBarCodevarchar50是用户条形码readerNamevarchar50否用户名称sexvarchar10否用户性别readerTypevarchar50否用户类型certificateTypevarchar50否证件类型certificatevarchar50否证件号码telvarchar50否联系电话emailvarchar50否电子邮件remarkvarchar500否备注8. tb_readerType (用户类型信息表)表tb_readerType 用于保存所有用户类型信息,该表的结构如表5-8所示。表5-8 用户类型信息表字段名数据类型长度主键否描述idint4是类型编号typevarchar50否类型名称numvarchar50否可借本数9. tb_user (管理员信息表)表tb_user 用于保存所有管理员信息,该表的结构如表5-9所示。表5-9 管理员信息表字段名数据类型长度主键否描述userIdint4是管理员编号usernamevarchar50否管理员名称userPwdvarchar50否管理员密码6 编码及实现6.1 公共类设计在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、字符串处理的类等,因此,在开发系统前首先需要设计这些公共模块。下面将具体介绍物价指数管理系统中所需要的数据库操作类。数据库操作类用来完成数据库的连接操作,以及数据库的查询、添加、删除和修改操作。将这几种操作编写到一个公共类里,可以减少重复代码的编写,有利于代码的维护。在dataOperate类中一共定义了5个方法,下面分别对这几个方法进行解释。首先在命名空间区域引用using System.Data.SqlClient命名空间。代码如下:using System.Data.SqlClient;6.1.1 createCon方法 createCon方法用来连接数据库,此方法返回的类型为SqlConnection。代码位置: libraryManageApp_CodedataOperate.cs。代码如下:public static SqlConnection createCon() con = new SqlConnection(server=.;database=db_tsrj;uid=sa;pwd=;); return con;6.1.2 execSQL方法execSQL(string sql)方法用来添加、插入和删除数据。此方法返回一个布尔型值,用来表示添加、插入和删除数据是否成功,执行成功返回true,否则返回false。调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码位置:libraryManageApp_CodedataOperate.cs。代码如下:public static bool execSQL(string sql) SqlConnection con = createCon();/创建连接对象 con.Open(); SqlCommand com = new SqlCommand(sql, con); try com.ExecuteNonQuery();/执行SQL语句 con.Close();/关闭连接对象 catch (Exception e) con.Close(); return false; /执行失败返回false return true;/执行成功返回true6.1.3 seleSQL方法seleSQL(string sql)方法用来查找数据是否存在。此方法返回一个整型值,用来表示是否查找到数据,如查找到数据则返回1,否则返回0。调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码位置:libraryManageApp_CodedataOperate.cs。代码如下:public static int seleSQL(string sql) int i; SqlConnection con = createCon();/创建连接对象 con.Open(); SqlCommand com = new SqlCommand(sql, con); try i=Convert.ToInt32(com.ExecuteScalar();/执行SQL语句后返回第一行第一列的值 con.Close();/关闭连接 catch (Exception e) con.Close(); return 0; if (i0)/判断是否大于0,大于返回1否则返回0 return 1; else return 0;6.1.4 getDataset方法getDataset(string sql string table)方法用来查找并返回多行数据。此方法返回一个DataSet数据集。在调用此方法时应传入两个string类型的参数,第一个参数表示要执行的SQL语句,第二个参数表示表名。代码位置:libraryManageApp_CodedataOperate.cs。代码如下:public static DataSet getDataset(string sql, string table) SqlConnection con = createCon();/创建数据库连接对象 con.Open();/打开连接 SqlDataAdapter sda = new SqlDataAdapter(sql, con);/执行SQL语句 DataSet ds = new DataSet();/创建数据集 sda.Fill(ds, table);/填充数据集 return ds;/返回数据集6.1.5 getRow方法getRow(string sql)方法用来查找并返回一行数据。此方法返回一个SqlCommand对象。在调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。代码位置:libraryManageApp_CodedataOperate.cs。代码如下:public static SqlDataReader getRow(string sql) SqlConnection con = createCon(); con.Open(); SqlCommand com = new SqlCommand(sql, con); return com.ExecuteReader();6.2 网站首页设计6.2.1 网站首页概述 管理员通过“系统登录”模块验证后,可以登录到物价指数管理系统的主页。系统主页主要包括Banner信息栏、导航栏、借阅排行榜和版权信息等4部分。6.2.2 网站首页技术分析 在开发网站时,如果使用GridView控件显示信息,为其添加一个自动编号列,是一个比较有用的功能,可以一目了然地看到当前页共有多少条记录。在物价指数管理系统的首页开发中用到了这一技术,实现按照借阅次数的多少进行排名的功能。网站首页中主要通过设置GridView控件中第一列的值为当前项目的索引值累加来实现GridView控件的自动编号功能。在实现自动编号功能时,主要触发了GridView控件的RowDataBound事件,该事件详细说明如下。RowDataBound事件:呈现GridView控件之前,该控件中的每一行都必须绑定到数据源中的一条记录。将某个数据行绑定到GridView控件中的数据以后,将引发RowDataBound事件。网站首页在实现自动编号功能时,主要是通过在GridView控件的RowDataBound事件中动态修改GridView控件中第一列的值实现的。GridView控件的RowDataBound事件中实现的代码如下(代码位置:libraryManageindex.aspx.cs):if (e.Row.RowIndex != -1) /判断GridView控件中是否有值 int id = e.Row.RowIndex + 1;/将当前行的索引加上1赋值给变量id e.Row.Cells0.Text = id.ToString();/将变量id的值传给GridView控件的每一行的单元格中说明:Row指定表示辅助性对象的可能角色的值;RowIndex获取当前绑定控件中行的索引;Cells获取用于填充行的单元格集合。因为GridView控件中项的索引是从0开始的,所以用当前索引值加1。6.2.3 网站首页实现过程1. 设计步骤(1) 本模块使用的数据表:tb_bookInfo。(2) 在该网站中新建一个Web窗体,将其命名为index.aspx,用于显示网站首页。(3) 在Web窗体中添加Table表格,用于页面的布局。(4) 在Table表格中添加相关的服务器控件,控件的属性设置及其用途如表6-1所示。表6-1 页面中控件属性设置及用途控件类型控件名称主要属性设置控件用途GridViewgbBookTaxisAutoGenerateColumns属性设置为False(去掉GridView控件自动生成的列)显示物价指数借阅排行榜Web用户控件header.ascx默认值网站导航功能bottom.ascx默认值网站版本信息2. 实现代码首先导入必要的命名空间using System.Data.SqlClient。引入命名空间的代码如下:using System.Data.SqlClient;在page_load单击事件中,利用Session对象判断用户登录的状态,如果Session中存在的变量为空,说明用户未登录,页面将跳转到登录页面;如用户已登录,则调用bindBookInfo自定义方法。代码位置:libraryManageindex.aspx.cs,代码如下:protected void Page_Load(object sender, EventArgs e) if (SessionuserName != null)/判断用户是否登录 bindBookInfo();/调用自定义方法用来绑定物价指数借阅排行 else Response.Redirect(entry.aspx);/跳转到登录页面 说明:Response.Redirect方法用来获取或设置重定向URL。bindBookInfo自定义方法用来显示物价指数借阅排行榜,在此方法中使用数据库操作类中的getDataset方法,查找出借阅率高的物价指数信息绑定到GridView控件上。代码位置:libraryManageindex.aspx.cs,代码如下:protected void bindBookInfo()string sql = select top 10 * from tb_bookInfo order by borrowSum desc;/设置SQL语句gvBookTaxis.DataSource = dataOperate.getDataset(sql, tb_bookInfo);/获取物价指数信息数据源gvBookTaxis.DataBind();/绑定GridView控件物价指数信息表中,物价指数类型存储的是类型的编号,为了查看方便将物价指数类型编号转换为类型名称。此功能在GridView控件的RowDataBound事件中实现,在此事件中先获取物价指数类型的编号,通过编号在物价指数类型表中获取类型名称,将类型名称绑定到物价指数类型列中。代码位置:libraryManageindex.aspx.cs,代码如下:protected void gvBookTaxis_RowDataBound(object sender, GridViewRowEventArgs e)if (e.Row.RowIndex != -1)/判断GridView控件中是否有值 int id = e.Row.RowIndex + 1;/将当前行的索引加上一赋值给变量id e.Row.Cells0.Text = id.ToString();/将变量id的值传给GridView控件的每一行的单元格中 if (e.Row.RowType = DataControlRowType.DataRow) /绑定物价指数类型 string bookType = e.Row.Cells3.Text.ToString();/获取物价指数类型编号 string typeSql = select * from tb_bookType where TypeID= + bookType; SqlDataReader typeSdr = dataOperate.getRow(typeSql); typeSdr.Read();/读取一条数据 e.Row.Cells3.Text = typeSdrtypeName.ToString();/设置物价指数类型 /绑定书架 string bookcase = e.Row.Cells4.Text.ToString();/获取书架编号 string caseSql = select * from tb_bookcase where bookcaseID= + bookcase; SqlDataReader caseSdr = dataOperate.getRow(caseSql); caseSdr.Read(); e.Row.Cells4.Text = caseSdrbookcaseName.ToString();/设置书架 /设置鼠标悬停行的颜色 e.Row.Attributes.Add(onMouseOver, Color=this.style.backgroundColor;this.style.backgroundColor=lightBlue); e.Row.Attributes.Add(onMouseOut, this.style.backgroundColor=Color;); 6.3 管理员设置模块6.3.1 管理员设置模块概述管理员设置模块主要包括查看管理员列表、添加管理员、管理员权限设置和删除管理员4个功能。选择“系统设置管理员设置”命令,进入到管理员设置页面。在此页面中将显示所有管理员的名称好管理员拥有的权限.单击“添加管理员”链接按钮将弹出添加管理员网页对话框,在此对话框中可以添加新的管理员,新添加的管理员默认拥有物价指数借还权限和系统查询权限,如图6-4所示。图6-4 添加管理员单击“权限设置”链接按钮将弹出管理员权限网页对话框,在此对话框中可以设置某一个管理员所拥有的权限。例如某个管理员不拥有系统设置权限,则“系统设置”一栏的所有功能将不能使用,如图6-5所示。图6-5 设置管理员权限6.3.2 管理员设置模块技术分析在添加新的管理员时,在管理员权限设置表中也应该将新管理员添加到其中。此功能主要利用触发器来实现。触发器在应用程序中可以代替繁琐的程序代码,完成相应的功能。由于触发器可以查询其他表,而且可以包含复杂的Transact-SQL语句,所以可以实现强制性的、复杂的业务规则或要求。触发器实质是一种特殊的存储过程,但是它与表却是紧密联系的,离开了表它将不复存在。触发器又不像存储过程那样需要调用才能执行,而是在对表中数据进行增、删、改操作时被触发而执行。在触发器内设置回滚,可以将触发它的语句所在的事务全部回滚,这样检测到错误时可以回滚事务以撤销错误。6.3.3 查看管理员信息页的实现过程1. 设计步骤(1) 本模块使用的数据表是tb_admSet。(2) 在该网站中新建一个Web窗体,将其命名为userManage.aspx,用于显示管理员信息。(3) 在Web窗体中添加Table表格,用于页面的布局。(4) 在Table表格中添加相关的服务器控件,控件的属性设置及其用途如表6-2所示。表6-2 页面中控件属性设置及用途控件类型控件名称主要属性设置控件用途GridViewgvAdmSetAutoGenerateColumns属性设置为False(去掉GridView控件自动生成的列)显示管理员详细信息Web用户控件header.ascx默认值网站导航功能bottom.ascx默认值网站版本信息2. 实现代码在页面的加载事件中,首先判断用户是否登录,如果用户已经登录,则判断此用户是否拥有管理此页面的权限,拥有此权限将调用bindUerManage自定义方法显示所有管理员信息。代码位置:libraryManageuserManage.aspx.cs,实现代码如下:protected void Page_Load(object sender, EventArgs e) if (SessionuserName != null)/判断管理员是否登录 if (getSet()/判断是否拥有权限 bindUerManage();/调用自定义方法显示管理员信息 else Response.Write(alert(您没有此权限);location=index.aspx;); else Response.Redirect(entry.aspx);/返回到登录页面 在bindUerManage自定义方法中,调用数据库操作类中的getDataset方法获取所有管理员信息。代码位置:libraryManageuserManage.aspx.cs,实现代码如下:public void bindUerManage() string sql = select * from tb_admSet; gvAdmSet.DataSource = dataOperate.getDataset(sql, tb_admSet);/获取数据源 gvAdmSet.DataKeyNames=new string userName;/设置主键字段 gvAdmSet.DataBind();/绑定GridView控件显示管理员信息getSet自定义方法用来判断此用户是否拥有管理此页面的权限,此方法返回一个布尔类型的值。当此值为True时,表示用户拥有管理此页面的权限,为False时则没有管理此页面的权限。代码位置:libraryManageuserManage.aspx.cs,实现代码如下:public bool getSet() string userName = SessionuserName.ToString();/获取管理员登录名 string sql = select * from tb_admSet where userName= + userName + ; SqlDataReader sdr = dataOperate.getRow(sql); sdr.Read();/读取一条记录 return Convert.ToBoolean(sdrsystemSet);/返回是否拥有权限删除管理员功能通过GridView控件中的RowDeleting事件来实现,在此事件中获取该管理员的登录名,通过登录名使用数据库操作类中的execSQL方法将此管理员删除,最后需要重新绑定管理员信息。代码位置:libraryManageuserManage.aspx.cs,实现代码如下:protected void gvAdmSet_RowDeleting(object sender, GridViewDeleteEventArgs e) string userName = this.gvAdmSet.DataKeyse.RowIndex.Value.ToString();/获取主键字段 string sql = delete from tb_admSet where userName= + userName + ; dataOperate.execSQL(sql);/删除管理员信息 bindUerManage();/重新绑定管理员信息6.3.4 管理员权限设置页的实现过程1. 设计步骤(1) 本模块使用的数据表是tb_admSet。(2) 在该网站中新建一个Web窗体,将其命名为admSet.aspx,用于设置管理员的权限。(3) 在Web窗体中添加Table表格,用于页面的布局。(4) 在Table表格中添加相关的服务器控件,控件的属性设置及其用途如表6-3所示。表6-3 页面中控件属性设置及用途控件类型控件名称主要属性设置控件用途TextBoxtxtUserName将ReadOnly属性设置为“True”(设置文本框是否为只读属性)显示管理员登录名CheckBoxcekboxSystemSet默认值显示并设置管理员系统设置权限cekboxBookBorrow默认值显示并设置管理员物价指数借还权限cekboxReaderManage默认值显示并设置管理员用户管理权限cekboxSystemSearch默认值显示并设置管理员系统查询权限cekboxBookManage默认值显示并设置管理员物价指数管理权限ButtonbtnSave默认值保存当前设置按钮Input (Button)btnClose默认值关闭此页面按钮2. 实现代码在页面加载事件中判断页面是否是首次加载,如果页面是首次加载,则调用bindUser自定义方法显示当前用户拥有的权限。代码位置:libraryManageadmSet.aspx.cs,实现代码如下:static string userName;protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) bindUser();/调用自定义方法显示该管理员当前拥有的权限 在bindUser自定义方法中通过查看管理员页面传入的管理员登录名,在数据库中读取此管理员当前拥有的权限并将权限信息显示出来。代码位置:libraryManageadmSet.aspx.cs,实现代码如下:public void bindUser() userName = Request.QueryStringuserName.ToString();/获取管理员登录名 txtUserName.Text = userName;/显示管理员登录名 string sql = select * from tb_admSet where userName= + userName + ; SqlDataReader sdr = dataOperate.getRow(sql); sdr.Read();/读取一条记录 cekboxSystemSet.Checked = Convert.ToBoolean(sdrsystemSet);/显示是否拥有系统设置权限 ceckboxSystemSearch.Checked = Convert.ToBoolean(sdrsystemSearch); /显示是否拥有系统查询权限 ceckboxReaderManage.Checked = Convert.ToBoolean(sdrReaderManage); /显示是否拥有用户管理权限 ceckboxBookManage.Checked = Convert.ToBoolean(sdrbookManage); /显示是否拥有物价指数管理权限 ceckboxBookBorrow.Checked = Convert.ToBoolean(sdrbookBorrow); /显示是否拥有物价指数借还权限当修改完当前管理员的权限后将管理员权限信息更新到管理员权限设置表中,此操作是在“保存”按钮的Click事件中实现的。在此事件中获取当前设置的管理员权限信息,使用数据库操作类中的exeSQL方法将数据库中的权限信息更新。代码位置:libraryManageadmSet.aspx.cs,实现代码如下:protected void btnSave_Click(object sender, EventArgs e) byte systemSet = Convert.ToByte(cekboxSystemSet.Checked);/获取系统管理权限 byte systemSearch = Convert.ToByte(ceckboxSystemSearch.Checked);/获取系统查询权限 byte readerManage = Convert.ToByte(ceckboxReaderManage.Checked);/获取用户管理权限 byte bookManage = Convert.ToByte(ceckboxBookManage.Checked); /获取物价指数管理权限 byte bookBorrow = Convert.ToByte(ceckboxBookBorrow.Checked);/获取物价指数借还权限 string sql = update tb_admSet set systemSet= + system

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论