




已阅读5页,还剩72页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程案例企业办公自动化管理系统,通过本案例学习一下内容:1.企业办公自动化管理系统开发的基本过程2.系统需求分析和可行性分析3.系统设计的方法4.构建开发环境5.如何分析并设计数据库6.如何设计公共类7.主要功能模块的实现方法8.系统的编译与发布9.SQLserver技术10.面向对象的开发思想11.分层开发模式,1,系统分析,一.需求分析对于企业办公自动化管理系统来说,提高企业的管理效率、方便企业职员的协助是至关重要,企业的办公环境如下:1.使用计算机网络环境属于局域网。2.公司规模50100人,人手一台计算机。3.员工上下班考勤属于人工考勤。4.实行人性化管理,允许员工自己有发表意见和想法。5.员工在工作中传送和接收文件,很不方便。6.对于公司的公告、新闻和规章制度,员工了解不及时7.重要通知都是逐一打电话通知。,2,系统分析,需求分析结论1.部门管理功能2.员工管理功能3.公告管理功能4.文件管理功能5.交流管理功能6.考勤管理功能7.规章制度管理功能8.系统管理功能,3,二、系统设计,1.系统目标根据需求分析的描述以及与用户的沟通,现制定系统实现目标如下:系统采用人机对话方式,界面美观友好,信息查询灵活、方便,数据存储安全可靠。灵活、快速的发送和接收文件。实现功能强大的公告发布与管理功能。系统最大限度地实现易维护性和易操作性界面简洁、框架清晰、美观大方。实现企业部门和职员的信息管理功能。通过后台查看与删除公告信息、查看公文信息。对员工信息、职位信息与部门信息的管理。,4,二、系统设计,业务流程图,5,系统功能结构,企业办公自动化管理系统前台(职员)功能结构图,6,系统功能结构,企业办公自动化管理系统前台(职员)功能结构图,7,构建开放环境,1.web系统开发环境页面开发环境:VS2005集成开发环境开发语言:ASP.NET+C#后台数据库:SQLServer2000开发环境运行平台:XP(SP2)2.服务器端WEB服务器:IIS6.0数据库服务器:SQLServer2000网站服务器运行环境:.NETFrameworksdk2.03.客户端浏览器:IE6.0分辨率:最佳效果1024768,8,数据库设计,系统数据库采用SQLServer2000数据库,系统数据库名称为db_OAS.数据库db_OAS中包括多张数据表。下面分别给出数据表概要说明、数据库E-R图、数据表关系图、数据表的结构。,9,数据表概要说明,数据表树形结构如下图:,10,数据库E-R的分析,课堂练习:对上表中的各个实体用E-R图进行分析。要求:1.用E-R图描述出各个实体。2.描述数据表结构。3.描述数据表之间的关系。,11,实体描述举例,企业部门实体E-R图描述,企业部门数据表结构描述,12,数据表的关系图,13,试写出下列需求的SQL语句,根据输入的”用户名”“密码”查询“系统用户表”中是否有记录存在,并判断该用户是“管理员”还是“普通职员”增加部门信息;根据ID查看某个部门信息删除某个部门,14,复杂SQL语句的使用显示企业的年度优秀员工信息,1.优秀员工的标准通过考勤考核(迟到和早退)2.考勤结果的前2位3.显示的信息包括:员工姓名,所在部门,照片,15,相关资料来自SQL联机丛书,使用TOP和PERCENT限制结果集TOP子句限制返回到结果集中的行数。TOPnPERCENTn指定返回的行数。如果未指定PERCENT,n就是返回的行数。如果一个SELECT语句既包含TOP又包含ORDERBY子句,那么返回的行将会从排序后的结果集中选择。整个结果集按照指定的顺序建立并且返回排好序的结果集的前n行。,16,相关资料来自SQL联机丛书,用ORDERBY对行进行排序ORDERBY子句按查询结果中的一列或多列对查询结果进行排序,用作排序依据的列总长度可达8,060。有关ORDERBY子句最大大小的更多信息,请参见SELECT。排序可以是升序的(ASC),也可以是降序的(DESC)。如果没有指定升序还是降序,就假定为ASC。,17,相关资料来自SQL联机丛书,聚合函数聚合函数对一组值执行计算并返回单一的值。除COUNT函数之外,聚合函数忽略空值。聚合函数经常与SELECT语句的GROUPBY子句一同使用。Transact-SQL编程语言提供下列聚合函数:AVGMAXSUMMINCOUNT等,18,相关资料来自SQL联机丛书,使用内联接内联接是用比较运算符比较要联接列的值的联接。下面的Transact-SQL查询是内联接的一个示例:USEpubsSELECT*FROMauthorsASaINNERJOINpublishersASpONa.city=p.cityORDERBYa.au_lnameDESC此内联接称为相等联接。它返回两个表中的所有列,但只返回在联接列中具有相等值的行。,19,,a.dept,a.photoPath,b.statefromtb_employeeASainnerjoin(selectTOP2*from(selectemployeeName,sum(late)+sum(quit)asstatefromtb_signgroupbyemployeeName)asaaorderbystate)=b.employeeNameorderbyb.state,20,ADO.NET介绍,ADO.NET对MicrosoftSQLServer和XML等数据源以及通过OLEDB和XML公开的数据源提供一致的访问。在创建ADO.NET时,Microsoft具有以下设计目标:1.利用当前的ActiveX数据类型(ADO)知识。2.支持N层编程模型。3.集成XML支持。,21,ADO.NET介绍,和.netframework类库中其他所有东西一样,ADO.net不过是一组类型(TYPES)而已,他们都位于SYSTEM.DATA名字空间中。,22,ADO.NET介绍,每一种.NET数据供应器都实现为一组类型(types);System.Data.SqlClient名字空间-SQLProviderSystem.Data.OleDb名字空间-OLEDBProvider不论选择哪种Provider,每一种都提供一套相似的类(Class),23,ADO.NET介绍,.NET数据provider都支持的一些基础对象。它们是:Connection:用于建立和释放连接(SqlConnection-OleDbConnection)Command:用于存储和执行命令,如一个SQL查询或一个存储过程,并为命令指定参数。DataReader:对数据库中的数据提供直接、循环的只读的访问。DataAdapter:建造于DataReader之上,用于创建和操作DataSet实体。,24,ADO.NET介绍,客户可以通过DataReader或者DataSet来访问数据。,25,VisualStudio中的数据命名空间,.NETFramework中的数据和XML命名空间包括:System.Data由构成ADO.NET结构的类组成,该结构是托管应用程序的主要数据访问方法。ADO.NET结构使您可以生成可用于有效管理来自多个数据源的数据的组件。System.Data.OleDb构成兼容数据源的OLEDB.NETFramework数据提供程序的类。这些类使您能连接到OLEDB数据源、针对数据源执行命令并读取结果。System.Data.SqlClient构成SQLServer.NETFramework数据提供程序的类,该提供程序允许您连接到SQLServer7.0、执行命令并读取结果。System.Data.SqlClient命名空间与System.Data.OleDb命名空间类似,但为访问SQLServer7.0和更高版本进行了优化。,26,访问数据示例,示例如何打开一连接,如何创建一个命令,以及如何利用DataReaer读取结果。示例展示如何使用DataSets(一个DataAdapter如何用于将一个DataTable添加到一个DataSets中),27,访问数据示例-DataReader,1.设置一个连接SqlConnectionCn=NewSqlConnection(Server=(local);database=db_OAS;Uid=sa;Pwd=);2.创建一个命令SqlCommandCmd=Cn.CreateCommand();Cmd.CommandText=select*fromtb_departmentwhereID=20;3.打开连接Cn.Open();4.执行命令-将结果存入DataReaderSqlDataReaderRdr=Cmd.ExecuteReader();,28,访问数据示例-DataReader,5.取结果并显示trywhile(Rdr.Read()System.Console.WriteLine(String.Format(0,1,2,Rdr0,Rdr1,Rdr2);catch(System.Exceptione)System.Console.WriteLine(Error:0,e.Message);,29,访问数据示例-DataReader,6.释放资源,关闭连接finallyRdr.Close();Cn.Close();,30,访问数据示例-DataSets,SqlConnectionCn=newSqlConnection(Server=(local);database=db_OAS;Uid=sa;Pwd=);SqlCommandCmd=Cn.CreateCommand();Cmd.CommandText=select*fromtb_departmentwhereID=20;SqlDataAdapterDa=newSqlDataAdapter();Da.SelectCommand=Cmd;DataSetDs=newDataSet();Cn.Open();Da.Fill(Ds,tb_deparment);Cn.Close();,31,访问数据示例-DataSet,取数据;tryif(Ds.Tables0.Rows.Count0)DataRowrow=Ds.Tables0.Rows0;System.Console.WriteLine(String.Format(0,1,2,row0,row1,row2);catch(System.Exceptione)System.Console.WriteLine(Error:0,e.Message);,32,访问数据示例-DataSet,finallyif(Cn.State=ConnectionState.Open)Cn.Close();,33,#region利用DataSet存取查询结果;publicDataSetExecuteSelect(stringstrSql,stringstrTableName)SqlConnectionconn=newSqlConnection(strConn);SqlCommandcom=conn.CreateCommand();com.CommandText=strSql;SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=com;DataSetds=newDataSet();conn.Open();da.Fill(ds,strTableName);conn.Close();returnds;#endregion,34,#region增加、删除、添加SQL语句接口publicintExecuteUpdateAndInsert(stringstrSql)SqlConnectionconn=newSqlConnection(strConn);SqlCommandcom=conn.CreateCommand();com.CommandText=strSql;conn.Open();intiResult=com.ExecuteNonQuery();returniResult;#endregion,35,接口的封装,classDataAccessconststringstrConn;publicDataAccess()strConn=Server=(local);database=db_OAS;Uid=sa;Pwd=;接口1:利用DataSet存取查询结果针对SELECT语句;接口2:增加、删除、添加SQL语句接口,36,接口1:利用DataSet存取查询结果针对SELECT语句,#region该方法执行查询命令,并返回DataSet数据集;publicDataSetRun(stringstrSQL,stringstrTableName)SqlConnectionconn=newSqlConnection(strConn);conn.Open();SqlCommandcom=newSqlCommand(strSQL,conn);SqlDataAdapterda=newSqlDataAdapter();da.SelectCommand=com;DataSetds=newDataSet();da.Fill(ds,strTableName);conn.Close();returnds;#endregion,37,接口2:增加、删除、添加SQL语句接口,publicboolRun(stringstrSQL)SqlConnectioncon=newSqlConnection(strConn);con.Open();/第二种产生命令对象的方法;SqlCommandcom=newSqlCommand(strSQL,con);if(com.ExecuteNonQuery()0)con.Close();returntrue;elsecon.Close();returnfalse;,38,接口的使用,1.创建数据类实例;DataAccessda=newDataAccess();2.调用接口;DataSetds=da.Run(Select*fromb_department,dept);stringstrSQL=insertintotb_departmentvalues(+s1+,+s2+);da.Run(strSQL);,39,接口的使用,要求:点击添加按钮,将部门名和描述插入到Dropdownlist控件中显示点击查询按钮,将显示该部门的描述信息。,40,接口的使用,数据绑定;publicvoidBindDept()dlShow.DataSource=da.Run(Select*fromtb_department,dept);dlShow.DataTextField=name;dlShow.DataBind();,41,接口的使用,点击添加按钮;protectedvoidButton1_Click(objectsender,EventArgse)strings1=txtName.Text;strings2=txtDemo.Text;stringstrSQL=insertintotb_departmentvalues(+s1+,+s2+);da.Run(strSQL);BindDept();,42,接口的使用,点击查询按钮;protectedvoidbtnShowInfo_Click(objectsender,EventArgse)strings1=dlShow.SelectedValue;stringstrSql=select*fromtb_departmentwherename=+s1+;DataSetds=da.Run(strSql,dept);if(ds.Tables0.Rows.Count0)LblShow.Text=该部门介绍:+ds.Tables0.Rows02.ToString();,43,C#+SQL+HTML,protectedvoidLoadInfo()DataSetds=da.Run(select*fromtb_department,dept);Response.Write();Response.Write();Response.Write(编号部门名称部门介绍);Response.Write();,44,C#+SQL+HTML,for(inti=0;i);Response.Write(+ds.Tables0.Rowsi0.ToString()+ds.Tables0.Rowsi1.ToString()+ds.Tables0.Rowsi2.ToString()+“);Response.Write();Response.Write();,45,C#+SQL+HTML,46,对连接对象执行SQL语句来自MS帮助文档,publicabstractintExecuteNonQuery()可以使用ExecuteNonQuery执行编录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行UPDATE、INSERT或DELETE语句更改数据库中的数据。虽然ExecuteNonQuery不返回任何行,但是映射到参数的任何输出参数或返回值都会用数据进行填充。对于UPDATE、INSERT和DELETE语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为-1。返回值-受影响的行数。,47,接口的使用,MyDatamd=newMyData();/创建对象DataSetDs=md.ExecuteSql(“select*fromtb_departmentwhereID=20”,“tb_department”);/使用接口tryif(Ds.Tables0.Rows.Count0).catch(System.Exceptione).,48,接口参数,49,控件的使用说明,50,用户控件,51,用户控件,BaseClassbc=newBaseClass();if(rdoBtnAdmin.Checked)DataSetds=bc.GetDataSet(selectcount(*)fromtb_sysUserwhereuserName=+txtName.Text+anduserPwd=+txtPwd.Text+andsystem=1,tb_employee);if(ds.Tables0.Rows.Count0),52,用户控件,BaseClassbc=newBaseClass();DataSetds=bc.GetDataSet(,a.dept,a.photoPath,a.job,b.statefromtb_employeeasainnerjoin(selectTOP2*FROM(selectemployeeName,sum(late)+sum(quit)asstatefromtb_signgroupbyemployeeName)asaaorderbystate)=b.employeeNameorderbyb.state“,tb_sign);DataList1.DataSource=ds;DataList1.DataBind();,53,数据绑定,runat=serverHeight=54pxWidth=69px/姓名:部门:职务:,54,显示控件-GridView,55,显示控件-GridView,显示表格数据是软件开发中的一个周期性任务。ASP.NET提供了许多工具来在网格中显示表格数据可以使用GridView来完成以下操作:通过数据源控件自动绑定和显示数据。通过数据源控件对数据进行选择、排序、分页、编辑和删除。,56,显示控件-GridView,通过以下方式自定义GridView控件的外观和行为:指定自定义列和样式。利用模板创建自定义用户界面(UI)元素。通过处理事件将自己的代码添加到GridView控件的功能中。,57,比较GridView和DataGrid,GridView控件是DataGrid控件的后继控件。与DataGrid控件相似,GridView控件旨在在HTML表中显示数据。当绑定到数据源时,DataGrid和GridView控件分别将DataSource中的一行显示为输出表中的一行。DataGrid和GridView控件都是从WebControl类派生的。,58,比较GridView和DataGrid,虽然GridView控件与DataGrid控件具有类似的对象模型,但与DataGrid控件相比,前者还具有许多新功能和优势,包括:更丰富的设计时功能。改进的数据源绑定功能。排序、分页、更新和删除的自动处理。其他列类型和设计时列操作。具有PagerTemplate属性的自定义页导航用户界面(UI)。,59,GridView控件中设置数据显示格式,可以指定GridView控件的行的布局、颜色、字体和对齐方式。可以指定行中包含的文本和数据的显示。另外,可以指定将数据行显示为项目、交替项、选择的项还是编辑模式项。,60,GridView控件中设置数据显示格式,61,使用GridView控件进行数据绑定,GridView控件提供了两个用于绑定到数据的选项(具体说明参见MSDN)使用DataSourceID属性进行数据绑定,此选项让您能够将GridView控件绑定到数据源控件使用DataSource属性进行数据绑定,此选项使您能够绑定到包括ADO.NET数据集和数据读取器在内的各种对象。,62,使用GridView控件进行数据绑定,protectedvoidPage_Load(objectsender,EventArgse)if(!IsPostBack)GridView1.DataSource=bc.GetDataSet(select*fromtb_department,department);GridView1.DataKeyNames=newstringID;GridView1.DataBind();,63,使用GridView控件编辑和删除数据,64,HyperLinkField类来自MSDN,HyperLinkField类字段表示在数据绑定控件中显示为超链接的字段。重要属性说明:DataNavigateUrlFields属性获取或设置数据源中字段的名称,用于为HyperLinkField对象中的超链接构造URL。DataNavigateUrlFormatString属性取或设置当URL数据绑定到数据源中的字段时,HyperLinkColumn中的超链接的URL的显示格式。DataNavigateUrlFormatString=“DeptInfoEdit2.aspx?id=0,65,显示编辑的二级页面,66,显示编辑的二级页面,根据传过来的ID进行查找,并显示到页面元素中去;if(!Page.IsPostBack)DataSetds=bc.GetDataSet(SELECT*FROMtb_departmentWHEREID=+Request.QueryStringid.ToString()+,department);if(ds.Tables0.Rows.Count0)TxtDeptName.Text=ds.Tables0.Rows0Name.ToString();TxtDeptMemo.Text=ds.Tables0.Rows0memo.ToString();,67,理解事件冒泡,在ASP.NET框架中包含3个支持事件冒泡的标准控件(Repeater、DataList和DataGrid控件)事件冒泡指上述这些控件能捕获其子控件的事件。当子控件产生一个事件时,事件就向上“冒泡”传给包含该子控件的容器控件(父控件),而容器控件就可以执行一个子程序来处理该事件,68,事件处理,删除事件:bc.SqlExecute(DELETEFROMtb_departmentWHEREID=+GridView1.DataKeyse.RowIndex.Value.ToString()+);GridView1.DataSource=bc.GetDataSet(select*fromtb_department,department);GridView1.DataBind();,69,使用第三方控件-FreeTextBox,70,使用第三方控件-FreeTextBox,在页面源代码中添加:,71,使用第三方控件-FreeTextBox,72,使用第三方控件-Free
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冰缘生态系统响应-洞察及研究
- 多糖抗病毒机制研究-洞察及研究
- 山东省德州市齐河县2024-2025学年八年级下学期期末考试物理试题(含答案)
- 北京市五十七中2025-2026学年上学期九年级物理开学测试(无答案)
- 部门级安全培训程序课件
- 量子产率优化-洞察及研究
- 低代码平台用户体验研究-洞察及研究
- 矿业清洁生产模式-洞察及研究
- 应变数据融合分析-洞察及研究
- 基于多模态感知的前置镜在产业数字化转型中的落地悖论研究
- 颈椎病课件完整版
- 2025年青岛旅游业发展预测及投资咨询报告发展趋势预测
- 炸鸡汉堡加盟合同范例
- 工商银行-(招聘笔试题)
- 八年级物理上册课程纲要
- 学校食堂食品定点采购制度
- 《楼梯的故事》话剧剧本
- 出口鸡肉采购合同模板
- 新解读《JTG E20-2011公路工程沥青及沥青混合料试验规程》
- 幼儿园大班数学《认识8》
- Starter知识点清单(含默写)2024-2025学年牛津上海版英语六年级上册
评论
0/150
提交评论