摘要ROSE HA是美国ROSE Datasystem公司出品的新一代高可用性软件,它可以将 UNIX服务器和Windows服务器组成集群系统,并对服务器进行监控、故障检测、故 障恢复,保护运行服务器中的关键性数据服务和网络服务对于在客户机/服务器环境中 的网络及数据库中集成的高可用需求,ROSE HA提供了非常灵活而且适用的解决方案 Visual C#是微软公司为它的Microsoft.NET计划推出的核心编程语言该语言几乎综 合了目前所有编程语言系统的优点,并结合因特网的需要,增加了丰富的新特性和增强 功能Visual C#语言面向对象的设计,可以用来构建从高水平的商务目标到体系标准应 用程序的范围宽广的组件使用Visual C#语言,程序员能够迅速地建造提供充分开拓 计算和通信的工具和服务的新的Microsof t.NET平台°C#语言的组成部分使用简单的C# 语言结构体,能被转化成WEB服务,允许人们通过Internet调用在任何操作系统上运 行的任何语言SQL Server就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检 索数据库(Da tabase)是由一些有意义和有关系的数据(da ta)所组合而成。
我们称之为 数据库管理管理系统(Database Management System DBMS )SQL Server的优点在于 它能使用数据表示图或自定义窗体收集信息,数据表示图提供了一种类似于 Excel 的 电子表格,可以使数据库一目了然ASP.NET 不是一种技术实际上,它由几种蓬勃发展的技术以新的强大方式组合而 成 ASP.NET 包含:基于 XHTML 和 CSS 标准的表示;使用 Document Object Model 进行 动态显示和交互;使用 XMLHttpRequest 与服务器进行异步通信;使用 JavaScript 绑定 一切ASP.NET 的核心是 JavaScript 对象 XmlHttpRequest该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术简而言之, XmlHttpRequest 使您可以使 用 JavaScript 向服务器提出请求并处理响应,而不阻塞用户关键词】 网上图书管理系统;Rose;Visual C#; SQL Server; ASP.NET; JavaScript目录摘要 1Abstract 错误!未定义书签。
第一章 开发工具及工具简介 31.2ASP.NET语言简介 41.2数据库的选择 51.3 IIS介绍及配置 6第二章 需求分析 62.1 系统需求分析 62.2 系统功能分析 错误!未定义书签2.2.1 日常操作 72.2.2 资料管理 72.2.3 统计分析 72.2.4 打印中心 72.2.5 系统设置 7(9)系统界面功能;对系统相关内容进行设置2. 3 系统功能流程图 8第三章 数据库设计 93.1 数据库概念设计 93.1.1设计局部E-R模式 103.2 数据库逻辑结构设计 11第四章 系统程序设计 114.1 系统模块组成 114.2 各模块的实现 错误!未定义书签4.2.1 查看图书类型模块的实现 124.2.2 查看书籍模块的实现 144.2.3 主页显示功能的实现 164.3 各功能介绍 17第五章 系统测试与维护 185.1 系统使用环境 185.2 系统测试 185.3 系统维护 19第六章 制作步骤及说明 196.1 关键技术和代码说明 19致谢 27第一章 开发工具及工具简介1.1Rose 语言简洁l友好的界面RoseHA提供了友好直观的图形安装界面和监控管理界面。
通过直观而又方便的 Java Applet管理界面,用户可以交互式地对集群系统进行配置、监控和管理,并可以 利用Applet的网络特性,通过网络对系统进行远程管理,实时地显示出主机系统及服 务的状态l 灵活的 Active-Active 模式和 Active-Standby 模式RoseHA支持Active-Active模式和Active-Standby模式用户可指定每台服务器 的作用(active or standby),指定要监控的服务和硬件部分,定义指定的服务发生故 障后要采取的进一步行动(如是否重新启动该服务、允许的最大启动时间等)l支持多条心跳路径可以将网线和RS-232串口线作为在RoseHA软件的心跳路径配置多条心跳路 径可以避免系统的单点故障l自动切换当系统出现故障时(如:系统宕机、HA进程/应用进程被杀掉、RS-232、SCSI、 光纤、网络线缆断开),RoseHA将确定故障原因,并采取相应对策,并将这些应用切 换到备份服务器上而故障服务器中未受影响的应用不会被切换,既不会受任何影响 不需要系统管理员干预l自动检测在集群系统的每一台服务器内,RoseHA具有两个核心进程,它们互相监控,如果其中一个进 程失败,另一个进程会立即进行恢复。
l服务器可靠性在主服务器出现故障(如掉电或宕机)时,另外一台服务器接管故障服务器上运行 的所有的关键性应用l网络可靠性如果服务器的网络部分发生故障,会导致客户不能连接和访问到服务器,这同样是 致命的故障如果该服务器配备了冗余的网络接口,RoseHA会使用它来恢复网络连接 在没有配备冗余的网络接口,或者所有的网络接口均出现故障时,HA会将该应用切换 到另外一台服务器上切换完成后,客户在短暂的切换过程后能够继续访问所需的服务l存储可靠性需要将应用的全部数据存储在两台服务器都能访问到的共享磁盘中建议使用磁盘 阵列来存储数据,这样可以避免单点固障,而且便于对系统的容量进行扩充对由 Volume Manager软件管理的磁盘阵列,RoseHA提供了相应的处理程序,以保证磁盘 阵列及数据的可靠性l应用可靠性在高可用性系统中可以运行多个应用每一个应用是作为一个服务而存在的在服 务器中,当某个服务失败而其它服务正常运行时,RoseHA将处理这个失败的服务在 将这个服务切换到另一台服务器上时,该服务器上运行的服务也不会受到影响对于与 网络不相关的纯数据应用,只需要切换数据存储和数据处理软件而在与网络相关的客 户机/服务器应用,除了要切换数据存储和数据处理软件外,还需要切换相关的虚拟IP。
如果希望两个服务独立地进行切换,则此两个IP地址不能相同如果使用了相同的IP 地址,在发生切换时,RoseHA会将所有使用该IP的服务都切换到另外一台服务器上 去1.2ASP.NET 语言简介在世界范围内, Internet 正以一种不可阻挡的势头迅速发展人们可以通过Internet,以不同的方式相互沟通、从Internet上获取自己想要的一切信息,为此, 人们在Internet上制定了各种方法早期的超文本标记语言HTML,使Internet的数据 描述发生了一次变革与以前的 Web 开发模型相比, ASP.NET 提供了数个重要的优点:(1) 增强的性能ASP.NET 是在服务器上运行的编译好的公共语言运行库代码与被解释的前辈不 同, ASP.NET 可利用早期绑定、实时编译、本机优化和服务这相当于在编写代码行之 前便显著提高了性能世界级的工具支持 ASP.NET 框架补充了 Visual Studio 集成 开发环 境中的大量工具箱和设计器 WYSIWYG 编辑、拖放服务器控件和自动部署只是 这个强大的工具所提供功能中的少数几种2) 威力和灵活性由于 ASP.NET 基于公共语言运行库,因此 Web 应用程序开发人员可以利用整个平 台的威力和灵活性。
.NET 框架类库、消息处理和数据访问解决方案都可从 Web 无缝访 问 ASP.NET 也与语言无关,所以可以选择最适合应用程序的语言,或跨多种语言分割 应用程序另外,公共语言运行库的交互性保证在迁移到 ASP.NET 时保留基于 COM 的 开发中的现有投资3) 简易性ASP.NET 使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署和 站点配置例如, ASP.NET 页框架使您可以生成将应用程序逻辑与表示代码清楚分开的 用户界面,和在类似 Visual Basic 的简单窗体处理模型中处理事件另外,公共语言 运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发4) 可管理性ASP.NET 采用基于文本的分层配置系统,简化了将设置应用于服务器环境和 Web 应用程序由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的 情况下应用新设置此"零本地管理"哲学也扩展到了 ASP.NET 框架应用程序的部署 只需将必要的文件复制到服务器,即可将 ASP.NET 框架应用程序部署到服务器不需 要重新启动服务器,即使是在部署或替换运行的编译代码时5) 可缩放性和可用性。
ASP.NET 在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中 提高性能的功能另外,进程受到 ASP.NET 运行库的密切监视和管理,以便当进程行 为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理 请求6) 自定义性和扩展性ASP.NET 随附了一个设计周到的结构,使开发人员可以在适当的级别“插入”代码 实际上,可以用自己编写的自定义组件扩展或替换 ASP.NET 运行库的任何子组件实 现自定义身份验证或状态服务一直没有变得更容易7) Web2.0 支持随着第二波互联网热潮的回归,Web 2.0得到越来越多人的认同,而A更是 开创了许多Web应用的新模式,包括Web Form,更加简易的Web Services以及对ASP.NET 的强有力的支持使我们在最短的时间内开发出一套完整健壮而有符合用户习惯的优秀 程序成为可能1.2数据库的选择(1) 数据库介绍SQL Server是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS), 是Office系列应用软件之一它提供了表、查询、窗体、报表、页、宏、模块7种用 来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、 界面设计、报表生成等操作规范化;为建立功能完善的数据库管理 系统提供了方便, 也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
2) 数据库用途SQL Server在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程 的开发人员专门利用它来制作处理数据的桌面系统它也常被用来开发简单的WEB应用 程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复 杂的 WEB 应用程序则使用 PHP/MySQL 或者 ASP/Microsoft SQL Server.它的使用方便程度和强大的设计工具为初级程序员提供许多功能不过,这种便于 使用可能使人误解这类开发者都是没有在应用或者数据设计方面训练的办公室从业人 员因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的 局限性产生了这样的误导一些专业的应用程序开发人员使用 SQL Server 用作快速应用开发,特别是给街道 上的推销员制作一个初型或独立应用程序的工具可是如果是透个网络存取数据的话, SQL Server 的可扩放性并不高.因此当程序被较多使用者使用时,他们的选择多会是 倾向于一些客户端-服务器为本的方案,例如 Oracle、 DB2、 Microsoft SQL Server、 Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者 Filemakero 无论如何,不少 SQL Server 的功能(表单,报告,序列和 VB 代码)可以用作其他数 据库的后期应用,包括JET(档案为主的数据库引擎‘SQLServer缺省使用Microsoft SQL Server、Oracle和任何其他跟ODBC兼容的产品。
这种方法允许开发者把一个成熟 的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展3) 数据库特性MSDE (微软公司SQL服务器桌面发动机)2000,袖珍版本的MSSQL服务器2000,被 包括开发版的办公室 XP 并且被用于进入可能作为除之外的另一种选择 JET 数据库引 擎 (尽快的*版本的 MSDE 和微软公司交换服务器实际上使用这台喷气发动机处理巨大 大量数据并且安置一“赝品”在它之上的那些应用的应用 层大约这事实的缺乏知识 因进入/喷口家庭的软件产品而为不该受不敬做贡献,特别是关于"大"工程 )进入分割和粘贴功能性能使它有用工具在其他数据库之间连结(例如,在数据或者 数据库变换期间的Oracle和微软公司SQL服务器)进入与给与 窗子和其他平台应用 一起的积分的各种各样进口和退场门特征一起来,一经请求从应用的里面或者手工由用 户其中几可以被执行例如非常紧密 SNP 完全格式化的 为分享的形式与没有全部的进 入软件的人们报告它也能容易被升级到微软公司SQL服务器4) 数据库发展进入可提供的编程语言,当时在另一个内产品 Microsoft Office 家具,微软公司 应用的Visual Basic。
两个数据库进入讯息库COM组成部分被提供:这笔遗产数据存取 物体(DAO),用进入和新只可提供ActiveX数据对象(忙乱)1・3 IIS介绍及配置因特网信息服务器(Internet Information Server, IIS)是Microsoft公司提供的 一种集成了多种Internet服务(WWW服务、FTP服务等)的服务器软件,利用它,可以很 容易地构造Web站点由于是同一家公司的产品,IIS和Windows NT Server紧密地集 成在一起,可以充分利用 Windows NT 的多种功能,其安全机制也以 Windows NT 的 NTFS 安全机制为基础,因此可以实现用IIS构建的Web站点的安全性在本系统开发过程中, 在IIS安装完毕后,打开IIS管理器,配置虚拟目录和应用程序池到开发的ASPX页面 根目录下第二章 需求分析2.1 系统需求分析此图书管理系统系统,主要的功能包括五大部分:日常操作;资料管理;统计分析 打印中心和系统设置功能日常操作包括借阅管理功能等各种相关数据库的操作功能 资料管理包括书籍管理功能统计分析包括借阅排行榜功能打印中心 采用了最新的ASP.NET技术与服务器异步交互,可以使用户得到良好的用户体验。
2.2.1日常操作(1) 借阅管理功能:对借出书籍进行统计并对借阅者和书籍资料进行登记2) 借阅查询功能:对所借书籍进行查询并对借阅者的相关资料和借书情况进行记录(3)借阅流水功能;对借出书籍资料进行记录4)预借详情功能;对预借书籍资料进行记录5)置换条码功能;对书籍的新旧编码更换进行操作2.2.2 资料管理(1) 书籍管理功能;对所有书籍借出情况和借阅者资料进行记录2) 期刊管理功能;对所有期刊借出情况和借阅者的资料进行记录3) 物品管理功能;对借出物品借出情况和借阅者的相关资料进行记录(4) 读者管理功能;对读者的相关资料和书籍借出情况进行记录5) 类别资料功能;对书籍和借阅者进行分类2.2.3 统计分析(1)借阅排行榜功能;对所借出书籍的种类进行统计2)资料状态统计功能;对所有资料在不同情况下的数量进行统计(3) 借阅统计分析功能;对所借书籍的种类进行分析4)图书类别统计功能;对所有书籍进行分类2.2.4 打印中心(1)读者当前借阅功能;对当前借阅者和所借书籍的相关情况进行记录2)资料借阅日志功能;对借阅者相关情况和被借出书籍的相关情况进行记录(3)资料当前借阅日志功能;对借阅者的相关资料进行记录和借书的相关情况 进行记录。
4)资料借阅日志功能;对借阅者和所借书籍的相关资料进行记录5)系统条码标签功能;对书籍和借阅者的条形码进行管理2.2.5 系统设置1) 用户管理功能;对用户进行一系列的操作2) 切换用户功能;对登录的用户进行管理3) 修改密码功能;对所登录用户密码进行修改4) 系统参数功能;对用户借出书籍进行管理5) 备份管理功能;对系统库进行备份并进行相关操作6) 系统初始化功能;对管理系统书籍和用户资料进行处理7) 暂时离开功能;对用户进入和退出系统进行操作8) 数据库系统功能;对数据可的链接进行设置9)系统界面功能;对系统相关内容进行设置2.3 系统功能流程图根据以上所做的需求分析与功能分析,并略掉一些细节(如不考虑用户的登录),得 出如图 2-1 的总体数据流图借阅者图书管理员借阅记录1:带来书并出示借书证2:查询借阅时间3:反馈借阅时间 \4:是否超时 =r5:超时负罚金6:修改借阅时间7:反馈借阅时间 \8:还书成功「息11借阅者 系统管理员 图书管理员 借阅记录1:登录系统L- 2:登录成功T3:输入要借阅的书籍4:查看所借书籍的状态]5:图书不可借阅 \&图书不可借阅7:图书可以借阅&借给读者1 9:修改所接书籍的信息 丄I 10:修改成功 丨图 2-1 总体数据流图第三章 数据库设计数据库设计的优劣直接关系到项目系统的成败,一个好的数据库设计方案可以有效的提高系统的效率,高效快捷的组织数据管理,而且方便的系统维护。
3.1 数据库概念设计在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个 反映用户观点的概念模式然后再把概念模式转换成逻辑模式将概念设计从设计过程 中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定 DBMS 的 限制利用 E-R 方法进行数据库的概念设计,可分成三步进行:首先设计局部 E-R 模式, 然后把各局部E-R模式综合成一个全局模式,最后对全局E-R模式进行优化,得到最终 的模式,即概念模式3・1・1设计局部E-R模式3.1.2设计全局E-R模式(1) 确定公共实体类型 为了给多个局部 E-R 模式的合并提供开始合并的基础,首先要确定各局部结构中的公共 实体类型在这一步中我们仅根据实体类型名和键来认定公共实体类型一般把同名实 体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另 一类候选2) 局部 E-R 模式的合并 合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构3) 消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突设计全局E-R模式的目的不在于 把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所 有用户共同理解和接受的同一的概念模型。
4) 全局 E-R 模式的优化在得到全局 E-R 模式后,为了提高数据库系统的效率,还应进一步依据处理需求对 E-R模式进行优化一个好的全局E-R模式,除能准确、全面地反映用户功能需求外, 还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少; 实体类型间联系无冗余3.2 数据库逻辑结构设计1.数据库的逻辑结构实现 依照数据库的概念分析与逻辑关系结构,最终实现数据库的逻辑结构,下列各表分 别为本系统的数据表第四章 系统程序设计4.1 系统模块组成本系统主要分为九大模块如图所示4.2. 查看图书类型模块的实现此网上图书系统网上借书管理为允许管理员设置访问密码,所以在用户浏览书籍的 时候,系统需判断改歌曲下载是否存在密码保护若不存在密码保护,直接供浏览者浏 览改歌曲下载若存在密码保护,则显示密码提示信息和可供用户输入的密码框用户 输入正确密码即可浏览改歌曲下载信息,若输入密码错误,提示错误并允许用户多次输 入有此得到图 4-1 所示的流程图进入网站还书处理收取罚款是是完成还书借书处理更新读者借' .—阅信息输入数量完成借书登录是否成功 亠才、、宀 登陆系统:兀丿登陆成功图 4-1 查看歌曲下载模块流程图用户浏览时,提示输入密码的信息如图 4-2 所示。
图 4-2 查提示输入界面 图 4-3 为输入密码正确能借阅的书籍图 4-3 密码正确 图 4-4 是密码输入错误重新输入的提示图 4-4 密码错误返回登录界面4.2. 查看书籍模块的实现书籍模块流程如下:当用户点击浏览相册的时候,即弹出所有的书籍类别供浏览者 选择,选择对应的类别,即跳转到此类别的列显页面,列显页面为横向列显,采用了复 杂的 javascript 技术进行了大小缩放的效果,如图 4-5 所示图 4-5 书籍列显效果图 当用户点点击某本书籍时,即弹出该书籍资料,并且可以并进行查看展示效果如 图 4-6 所示图 4-6 查看书籍效果图4.2. 主页显示功能的实现管理员主页效果如图4-7 所 示图 4-7 管理员页效果图4.3 各功能介绍通过编写图书管理系统,使我的编程水平有了很大的提高现在已经可以独立编写 一些工具类,下面介绍一下此系统中使用的我自己编写的工具类1) RoseRoseMirrorHA简洁直观的图形化管理工具(GUI ),可以在网络中的任何一个地 方管理网络中的RoseMirrorHA主机,实现了远程管理RoseMirrorHA简洁易用的配置 管理方式,大大降低了系统的实施管理和维护成本。
2) DataSetToJson开发语言为C#,此类的功能是将DataSet或DataSet类型的数据转化为JSON格式 的数据此类的目的主要是解决ASP.NET异步请求得到XML数据在不同浏览器之间解析 不同的问题,因为JSON是JavaScript的原生格式,所以不存在浏览器的兼容问题3) ASP.NET开发语言为JavaScript此类就是对ASP.NET核心技术http_request对象的圭寸装 解决了在同一个页面里多次使用 ASP.NET 的问题,采用了面向对象思想将 function 抽 象为类,在使用的时候 new 出新的对象就可以进行多次不同的异步请求4) Cookie开发语言为JavaScrip t此类是对Cookie的操作进行了圭寸装内置set Cookie、 getCookie、delCookie 等方法思想还是面对对象,更大的优点是解决了不同浏览器 之间的问题,使开发者可以忽略浏览器的因素快速开发第五章 系统测试与维护5.1 系统使用环境由于本系统是使用Visual Studio 2005开发ASP.NET Framework版本为2.0所 以要使用本系统必须达到如下配置标准:服务器端:Windows NT/Windows2000/Windows Server2003, Internet Information Server (IIS)6.0 及其以上版本。
ASP.NET Framework 版本为 2.0 以上版本必须为该 站点配置应用程序池数据库:采用SQL Server,运行于服务器端客户端:经过测试,本系统可以使用IE6.0+; FireFox2.0+; Safari等主流浏览器 浏览,解决浏览器的兼容问题5.2 系统测试系统测试是软件开发中不可缺少的一个环节,它是衡量我们开发系统的一个标尺 它的目标是发现软件中的错误,然后通过调试对其进行改正,从而开发出高质量的完全 符合用户需要的软件对本系统的测试主要包括以下几个方面:1. 连接测试 一个好的系统应该不包含中断链接,花费时间检查链接可以避免错误信息的发生率链接测试可以分为三个方面:首先,测试所有链接是否按指示的那样确实链接到了 该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统尚没有孤 立的页面(没有链接指向该页面)经过系统连接测试,已经把系统中存在的所有错误链接都修改正确了用户可以放 心使用2. 检查布局的一致性 对于一个好的系统,布局的一致性也是十分重要的我们在设计系统时,常常会因为追求单个页面的美观而忽略了系统的整体效果这就需要对系统进行整体浏览,检查 布局和图像的一致性。
通过对系统的整体浏览调试,已经可以保证系统整体布局的一致性,相信能够为用 户提供简洁美观的页面5.3 系统维护本系统在运行过程中可能会伴随出现各种各样的软硬件问题,这就需要进行系统的 软件与硬件维护1. 系统的硬件维护 硬件系统的维护由专职的硬件人员承担,维护分为以下两种:(1) 定期的预防性维护,如周末或月末进行的例行检查与保养2) 突发性的故障维修,由专职人员过厂商进行,这种维护也有时间要求,以免影 响系统的正常工作由于本系统是基于单机建立的,学校已经有专门的机器硬件维护人员,只要原来的 维护人员进行正常的维护就可以保证本系统可以正常地运行了2. 系统的软件维护 系统的软件维护主要包括程序的维护,数据文件的维护,代码的维护本系统采用SQL Server为数据库,客户端应用程序采用ASPX编写,系统的软件维护自然跟其有着 密切的关系SQL Server系统的运行需要有专门人员负责进行系统的正确性维护,防止因用户或 管理人员的非法操作带来的系统错误;随着学校环境和业务量的增减,系统可能会不适 应当时情况,这时就需要进行系统的完善性维护除此之外,还要进行系统的预防性维 护由于在编写本系统时,特别注意了代码的规范化,在命名规则,程序书写规范上做 了很大的努力,这对将来的代码维护带来了方便。
总之,在系统正式投入运行之后,为了让系统长期高效地工作,必须加强对系统运 行的日常管理第六章 制作步骤及说明6.1 关键技术和代码说明首先创建数据库linfeng,在数据库中做出5个表格,分别是fensi,yingshi,ldadang,lin,fenmi这几个 表都是装有数据的简单的数据表格然后在视图里面新建视图dbo.search,然后再打开可编程性,在 存储过程中新建一个存储过程dbo.insert_users,再继续新建查询,输入查询语句,点击保存,刷新 一次,一个新的存储过程就建立好了,而新建视图的过程都是按照书上步骤进行的,打开视图,右 键点击新建视图,切换到里面的表,添加三个表完成后再建立几个表的关系就可以保存了,然后前 三个要求就做好了再来是此次大作业,主要是围绕明星林峰的材料做的个人博客,总共包括12 个页面,由一些已经用 Dreamweaver 做好的页面的代码以及连接的数据库表构成Defau1 t2.asp:这是首页,也就是menu菜单栏中的个人主页,这个页面是用DreamWeaver做成 的,在网站中新建文件夹image,添加现有项,把Dreamweaver素材页面文件夹中站点linfengba中 pic文件夹的所有图片素材添加进入网站,然后把用Dreamweaver做好的首页的代码全部复制粘贴到 第 19 页 共 29 页Default2.aspx 页面中,将其中以 Html 结尾的链接全部分更改为以 aspx 结尾的链接,并将其中涉及 到的一些图片素材的地址全部改为以 image 开头的地址,一个简单的页面就做好了,这个页面中包 括了一些导航,弹出式菜单,用层与时间轴做出的动态效果。
Default3.aspx:这是简介页面,用Dreamweaver做的鼠标经过图像功能,转换成aspx时也是先粘 贴复制所有代码,然后更改一些图片地址等而这个鼠标经过图像功能还实现了点击图像返回首页 的功能Default:从这个页面起,就开始使用到数据库功能了,在页面中打开工具箱,在数据一栏里,将 一个SqlDataSource控件拖入界面,然后配置数据源,选择已经建好的数据库linfeng点击下一步, 然后选择该页面需要用到的表格fensi,选择*就代表选择全部,然后打开高级选项,里面有一项生成 insert, update, delete 语句,将选项打钩,点击确定,点击下一步,可以测试查询,看是否设置成功, 然后点击完成再从旁边工具箱数据一栏里拖入一个ListView控件,然后配置ListView的布局样式 和选项,在里面选择,网络,彩色等布局和样式,然后勾选启用编辑,删除,插入选项,这样一个 带表连接数据库的页面就做好了,注意的是,这个页面不需要添加任何代码即可连接数据库了但是 在建表的是时候一定得设置主键,否则不能使用这个功能最后再在导航栏中拖入一个menu控件, 设置它的属性,在Items栏中添加新建项,把Text设置为返回首页,这样value也被设置成了返回首 页,并在 NavigateUrl 中设置 Default2.aspx 为链接即可。
Default5.aspx:这个页面中添加了一些Button控件进行显示,添加,修改,删除功能,还有一个 Dropdownlist便于条件查询,以及一个Gridview其中的代码如下: 条件查询;SqlDataAdapter da = new SqlDataAdapter();〃设置适配器SqlConnection conn = new SqlConnection();〃建立连接conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csjl8";〃 连接数据库 SqlCommand selectCmd = new SqlCommand();〃新建查询命令 selectCmd.CommandText = "select*from yingshi";// 输入查询语句 selectCmd.Connection = conn;// 将命令连接数据库SqlCommand Comm = new SqlCommand();〃新建一个命令Comm.CommandText = "select * from yingshi where ID='" + DropDownListl.SelectedValue + "'";//输 入条件查询语句Comm.CommandType = CommandType.Text;Comm.Connection = conn;conn.Open();〃 打开连接SqlDataReader dbreader = Comm.ExecuteReader(); 〃使用 ExecutereaderGridViewl.DataSource = dbreader;GridViewl.DataBind();〃 数据绑定显示全部:SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj l 8" ;SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from yingshi"; selectCmd.Connection = conn;da.SelectCommand = selectCmd;DataSet data = new DataSet();da.Fill(data, "yingshi");//将yingshi表中的数据填充到表中GridViewl.DataSource = data.Tables["yingshi"];GridView1.DataBind();添加:SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj18" ; SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from yingshi";selectCmd.Connection = conn;SqlCommand insertCmd = new SqlCommand();insertCmd.CommandText = "insert into yingshi values(@ID,@JM,@JS,@RQ)";〃输入添加语句 insertCmd.Connection = conn;insertCmd.Parameters.Add("@ID", SqlDbType.Int, 4, "ID"); insertCmd.Parameters.Add("@JM", SqlDbType.NVarChar, 50, "JM"); insertCmd.Parameters.Add("@JS", SqlDbType.NVarChar, 50, "JS"); insertCmd.Parameters.Add("@RQ", SqlDbType.NVarChar, 50, "RQ"); da.SelectCommand = selectCmd;da.InsertCommand = insertCmd;DataSet data = new DataSet();da.Fill(data, "yingshi");DataRow drNew = data.Tables["yingshi"].NewRow();drNew[0] = txtID.Text;drNew[1] = txtJM.Text;drNew[2] = txtJS.Text; drNew[3] = txtRQ.Text; data.Tables["yingshi"].Rows.Add(drNew); da.Update(data, "yingshi");修改;; SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj18" ; SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from yingshi";selectCmd.Connection = conn;SqlCommand editCmd = new SqlCommand(); editCmd.CommandText ="update yingshi set JM=@JM where ID=@ID"; editCmd.Connection = conn;editCmd.Parameters.Add("@ID", SqlDbType.Int, 50, "ID"); editCmd.Parameters.Add("@JM", SqlDbType.NVarChar, 50, "JM"); da.SelectCommand = selectCmd;da.UpdateCommand = editCmd;DataSet data = new DataSet();da.Fill(data, "yingshi");int nID = int.Parse(txtIDForEdit.Text);DataRow editDr = null;foreach (DataRow dr in data.Tables["yingshi"].Rows){if (int.Parse(dr["ID"].ToString()) == nID){editDr = dr;break;}}〃输入修改的if条件语句editDr["JM"] = txtNewJM.Text;da.Update(data, "yingshi");删除:SqlDataAdapter da = newSqlDataAdapter();SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj18";SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from yingshi";selectCmd.Connection = conn;SqlCommand delCmd = new SqlCommand();delCmd.CommandText = "delete yingshi where ID=@ID"; delCmd.Connection = conn;delCmd.Parameters.Add("@ID", SqlDbType.Int, 4, "ID");da.SelectCommand = selectCmd;da.DeleteCommand = delCmd;DataSet data = new DataSet();da.Fill(data, "yingshi");int nID = int.Parse(txtIDForDel.Text);DataRow delDr = null;foreach (DataRow dr in data.Tables["yingshi"].Rows){if (int.Parse(dr["ID"].ToString()) == nID){delDr = dr;break;}}if (delDr != null){delDr.Delete();da.Update(data, "yingshi");}}〃输入删除的if条件语句其中我是先给 DropDownlist 配置数据源,将我需要的表格 yingshi 配置给它,然后选择数据源也就是 需要进行查询的条件JM,然后再添加的Gridview,而 GridView此时就不需要配置数据源。
这样一来 就用C#语言编写好了其中的代码,一个完整的页面就着这样实现了最后在导航栏中拖入一个menu 控件,设置它的属性,在Items栏中添加新建项,把Text设置为返回首页,这样value也被设置成了 返回首页,并在NavigateUrl中设置Default2.aspx为链接即可Default6・aspx:与Default4.aspx —样,都是添加了 SqlDataSource使用自动生成语句,然后再添加一 个GridView控件,选择数据源SqlDataSourcel,然后勾选其中的启用排序,启用删除,启用编辑这 三个选项,最后在导航栏中拖入一个menu控件,设置它的属性,在Items栏中添加新建项,把Text 设置为返回首页,这样value也被设置成了返回首页,并在NavigateUrl中设置Default2.aspx为链接 即可Default7.aspx:在 Dreamweaver中用层得重叠做一个相册,将四张图片放入相册,当点击左边的小 图时,即可在右边显示大图Default8.aspx:用层添加有表格框,在里面做出登录页面,然后忘记密码和找回密码都是空链接, 而注册就链接到Default10.aspx,登录则进入歌曲下载。
Default9.aspx:在表格框中加入歌曲标志图片,将文字链接到下载本地,这些都是运用到 Dreamweaver 中的知识点,照着书把步骤实现即可然后将进入到下载记录表的链接链接到 Default11.aspxDefault10.aspx:在 Dreamweaver中一个注册页面,将代码复制粘贴过来即可Default11.aspx:这个页面中添加了一些Button控件进行显示,添加,修改,删除功能,还有一个 Dropdownlist便于条件查询,以及一 个Gridview其中的代码如下: 条件查询;SqlDataAdapter da = new SqlDataAdapter();〃设置适配器SqlConnection conn = new SqlConnection();〃建立连接 conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csjl8";〃 连接数据库 SqlCommand selectCmd = new SqlCommand();〃新建查询命令 selectCmd.CommandText = "select*from lim";〃 输入查询语句 selectCmd.Connection = conn;// 将命令连接数据库SqlCommand Comm = new SqlCommand();〃新建一个命令Comm.CommandText = "select * from lin where GQ='" + DropDownList1.SelectedValue + "'";//输入条 件查询语句Comm.CommandType = CommandType.Text;Comm.Connection = conn;conn.Open();〃 打开连接SqlDataReader dbreader = Comm.ExecuteReader(); 〃使用 ExecutereaderGridView1.DataSource = dbreader;GridViewl.DataBind();〃 数据绑定显示全部: SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlConnection();conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj l 8" ;SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from lin";selectCmd.Connection = conn;da.SelectCommand = selectCmd;DataSet data = new DataSet();da.Fill(data, "lin");//将yingshi表中的数据填充到表中GridViewl.DataSource = data.Tables["ljn"];GridView1.DataBind();添加:SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=.;Initial Catalog=linfeng;UID=sa;PWD=Csj18" ; SqlCommand selectCmd = new SqlCommand();selectCmd.CommandText = "select*from lin";selectCmd.Connection = conn;SqlCommand insertCmd = new SqlCommand();insertCmd.CommandText = "insert into lin values(@XiaID,@GQ,@RQ,@PJ)";〃 输入添加语句 insertCmd.Connection = conn;insertCmd.Parameters.Add("@XiaID", SqlDbType.Int, 4, "XiaID"); insertCmd.Parameters.Add("@GQ", SqlDbType.NVarChar, 50, "GQ"); insertCmd.Parameters.Add("@RQ", SqlDbType.NVarChar, 50, "RQ"); insertCmd.Parameters.Add("@PJ", SqlDbType.NVarChar, 50, "PJ"); da.SelectCommand = selectCmd;da.InsertCommand = insertCmd;DataSet data = new DataSet();da.Fill(data, "lin");DataRow drNew = data.Tables["lin"].NewRow();drNew[0] = txtXiaID.Text;drNew[1] = txtGQ.Text;drNew[2] = txtRQ.Text;drNew[3] = txtPJ.Text;data.Tables["lin"].Rows.Add(drNew);da.Update(data, "lin");修改;; SqlDataAdapter da = new SqlDataAdapter();SqlConnection conn = new SqlCon。