毕业设计(论文)-ASP在线文件管理系统.doc_第1页
毕业设计(论文)-ASP在线文件管理系统.doc_第2页
毕业设计(论文)-ASP在线文件管理系统.doc_第3页
毕业设计(论文)-ASP在线文件管理系统.doc_第4页
毕业设计(论文)-ASP在线文件管理系统.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

南京信息职业技术学院毕业设计论文作者 学号 系部 计算机与软件学院 专业 题目 在线文件管理系统 指导教师 评阅教师 完成时间: 2011 年 5 月 20 日 毕业设计(论文)中文摘要题目:在线文件管理系统摘要:随着计算机及网络技术的飞速发展,企业文件管理信息化、网络化是必然的趋势。利用计算机和网络技术来进行文件管理,具有以下优势:利于实现数据信息的共享,减轻管理员的工作负荷,使文件管理更科学、更规范、更安全。因此,设计一个安全的网络文件管理系统是十分必要的。系统采用b/s工作模式,使用asp技术和sql server数据库平台。主要功能如下:用户通过上网登录网站的方式,可方便上传、下载文件;强大的多用户管理体系,能对用户进行目录与文件的访问限制;强大的统计功能,能精确统计每一个文件夹及文件的大小。此论文详细介绍了系统的需求分析,系统设计和具体实现。关键词:上传,下载,数据库,文件管理,asp 毕业设计(论文)外文摘要title :design and implementation of network file management systemabstract: with the fast development of computer and network technology, it is an inevitable tendency for companies to manage documents by the use of computer and network technology. in that way, it is advantageous to share information and reduce the workload of managers. it will make the document management more scientific, more standard and much safer. therefore, it is very essential to design a safe network file management system.this system is based on the b/s model and developed by asp and sql server database. its main functions are as follows. user can upload and download the file conveniently. it has powerful management system for multiple users. it can limit the users access to the folders or files. it has powerful statistical function, and it can precisely count the size of each folder and file. in this paper, the requirement analysis, design and implementation of the system are introduced in detail.keywords: upload, download, database, file management ,asp 目录1 引言11.1 国内外研究成果11.2 本课题主要研究对象及方法12 需求分析52.1 网络迅速发展的推动52.2 发展在线文件管理的必要性52.3 系统总体规划63 系统设计73.1 界面设计83.2 数据库设计144 详细设计154.1 显示目录164.2 获取子目录174.3 获取指定用户的所有文件夹184.4 添加目录184.5 编辑目录194.6 删除目录204.7 移动目录214.8 获取指定文件的信息224.9 添加文件234.10 删除文件244.11 搜索文件255 测试265.1 静态测试275.2 动态测试27结论30参考文献321 引言随着计算机及网络技术的飞速发展,企业文件管理信息化、网络化是必然的趋势。利用计算机和网络技术来进行文件管理,具有以下优势:利于实现数据信息的共享,减轻管理员的工作负荷,使文件管理更科学、更规范、更安全。因此,设计一个安全的网络文件管理系统是十分必要的。系统采用b/s工作模式,使用asp技术和sql server数据库平台。主要功能如下:用户通过上网登录网站的方式,可方便上传、下载文件;强大的多用户管理体系,能对用户进行目录与文件的访问限制;强大的统计功能,能精确统计每一个文件夹及文件的大小。此论文详细介绍了系统的需求分析,系统设计和具体实现。1.1 国内外研究成果文件传送常用的三种方式ftp、email 及“网上邻居”都在一定程度上实现了文件数据的交流,但它们都主要面向“点对点”的传送,无法实现“一块空间,资源互见”的应用需求,这种基于“点对多”的共享模式需要寻求另外的传输途径,网络硬盘就是一种很好的解决方式。英国ewedrive 提供1gb 的免费存储空间,比较好的是它不限制单个文件大小。onedump 存储空间还是无限制大小的,不过单个文件只有最大5mb,且同时传出10 个文件,可用于存储一些文档之类的东西。国内研究成果相对交缓,如:51ok:未提供客户端工具,共享功能似乎还未完善。intdisk:功能基本上能够满足使用,可以通过客户端工具实现文档的阅读和修改,并且可以设置与服务器的同步,还未提供共享功能。但是也有比较出色的网络硬盘,例如:hao121 网络硬盘,网易网络硬盘,qq 网络硬盘等。但是目前可以开源的网络硬盘,还没有。1.2 本课题主要研究对象及方法本课题主要通过asp.net+mssql 技术研究网络的上传下载,通过数据库管理网络资源。可以实时了解自己的网络资源。较ftp 上传有明显的优势。本网络存储系统,基于b/s 的三层架构模式,使用mssql 数据库操作,使用存储过程,使用asp.net(c#) 编程,大大减少了服务器的负担。使用javascript 面向对象的客户端脚本语言,网络硬盘页面设计采用div 和css 网站布局。使用强命名程序集, 对源码进行加密。有利于保护源代码, 保护知识产权。1.2.1 三层架构 “三层结构”一词中的“三层”是指:“表现层”、“中间业务层”、“数据访问层”。其中:表现层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。中间业务层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。中间业务层也可以包括一些对“商业逻辑”描述代码在里面。数据访问层:仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是xml 文档。1.2.2 sql 数据库存储过程通过使用mssql 存储过程,可以充分利用存储过程的优势。使用sqlserver 中的存储过程而不使用存储在客户计算机本地的transact-sql 程序的优势有:允许模块化程序设计。只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。允许更快执行。如果某操作需要大量transact-sql 代码或需重复执行,存储过程将transact-sql 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行transact-sql语句时,都要从客户端重复发送,并且在sql server 每次执行这些语句时,都要对其进行编译和优化。减少网络流量。一个需要数百行transact-sql 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。可作为安全机制使用。即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。sqlserver 存储过程是用transact-sql 语句create procedure 创建的,并可用alter procedure 语句进行修改。存储过程定义包含两个主要组成部分:过程名称及其参数的说明,以及过程的主体(其中包含执行过程操作的transact-sql 语句)。1.2.3 软件工程方法简述软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程.建立一个管理系统,是一项复杂的软件工程的实施。进20年多年,软件工程发展成为新科学,至今已经成为软件产业的重要支柱。用这种方法所开发的软件质量低劣、可靠性差用户难以使用、开发成本太高等问题,给软件项目带来严重的后果。最为突出的一个例子是60年代美国ibm公司开发os/360系统。该系统有上千人参加工作,投入5000人年的工作量,花费大量的资金,却并未取得预期效果。60年代末期开始出现”软件危机”的种种迹象,人们逐渐认识到用个人小型程序的那种手工方式来研究软件已经不行了,必须寻找新技术来指导软件的开发。1968年,首先提出了”软件工程”这一名词,通过对程序中使用goto语句的讨论,导处了结构构化程序设计的概念,之后人们普遍重视需求规格说明书和系统设计在软件开发中的作用。到了80年代,软件工程思想得到系统的归纳和整理,提出了许多工程方法,如结构化生命周期法、快速原型法、企业系统规划法、战略数据规划法等。1.2.4 asp技术简述active server pages即asp是微软开发的一种类似html(hypertext markup language超文本标识语言)、script(脚本)与cgi(common gateway interface 通用网关接口)的结合体,它没有提供自己专门的编程语言,而是允许用户使用包括vbscript,javascript等在内的许多已有的脚本语言编写asp的应用程序。asp的程序编制比html更方便且更有灵活性。它是在web服务器端运行,运行后再将运行结果以html格式传送至客户端的浏览器。因此asp与一般的脚本语言相比,要安全的多。对于广大网页技术爱好者来说,asp比cgi具有的最大好处是可以包含html标签,也可以直接存取数据库及使用无限扩充的activex控件,因此在程序编制上要比html方便而且更富有灵活性。 asp吸收了当今许多流行的技术,如iis,activex,vbscript,odbc等,是一种发展较为成熟的网络应用程序开发技术;其核心技术是对组件和对象技术的充分支持。通过使用asp的组件和对象技术,用户可以直接使用activex控件,调用对象方法和属性,以简单的方式实现强大的功能。 asp结构模型图如下图 1-1所示:图 1-1 asp结构模型图asp技术有一个缺陷:它基本上是局限于微软的操作系统平台之上。asp主要工作环境是微软的iis应用程序结构,又因activex对象具有平台特性,所以asp技术不能很容易地实现在跨平台的web服务器的工作。 1.2.5 ado对象模型组成ado是一组由微软提供的com组件,基于面向对象思想的编程接口。它建立在com体系结构之上,它的所有接口都是自动化接口,因此在c+、visualbasic、delphi等支持com的开发语言中通过接口都可以访问到ado。ado对象模型非常精炼,由三个主要对象connection、command、recordset和几个辅助对象组成。 对象间的关系如图 1-2所示:图 1-2 ado对象关系2 需求分析2.1 网络迅速发展的推动2.1.1 信息管理在信息化网络化的今天,企业职员们经常有这样的应用需求:通过网络存储使用办公文件,同时保护私有数据不被非法访问,并使用简单、直观的方式操作。因此职员需要一个良好的文件管理工具。2.1.2 传统文件管理的弊端计算机的技术的广泛应用正逐步改善人们的生活,学习,工作。每个人都想拥有一份网络资源来方便学习和工作。在日常工作中,人们需要随身携带重要的文件来及时传递信息。用户可以方便的将自己的文件资料存储在u盘,mp3等这些设备中。然而,由于硬件设备自身的特殊性,在长期的使用过程中,磁道和扇区很容易被损坏。并且由于这些设备体积小,重量轻,也极其容易被丢掉。这些问题都会给用户增添一些不必要的麻烦。我们常用的网络文件传输方式如ftp、email邮件、网上邻居等都能实现文件的传送。其中,“ftp”功能最为强大,但不透明不安全不简便的操作模式,使得这种办法不利于办公的需要;“email”是大家所熟悉的了,但它的传送既需要internet,而且安全性也是个问题,在企业内部,财务、劳资等文件资料需通过这种方式交流不是好办法;“网上邻居”是第三种传送文件的方法,通过在本机上指定共享的web文件夹并放置资源文件,一定范围内的用户可以访问到这些文件,然而这种方式使用的范围相当有限,通常只能在一小个区域内的用户才能顺利访问,其它尤其是 internet上的用户很难使用,此外同email类似,它的使用也不直观,很多时候不得不在许多列表计算机上一层层展开搜索才有可能获取想要的资源。由此看来,以上三种方式虽然在一定程度上实现了文件数据的传输,但它们依旧无法实现“一块空间,即见既得”的应用需求,这就需要一种很好的解决方式“在线文件管理系统”。2.2 发展在线文件管理的必要性所谓“在线文件管理系统”,是将服务器上的磁盘空间提供给合法用户使用,这样用户就可以在互联网上直接实现文件的备份与转移。在操作方法上就像使用本地硬盘一样方便,轻松实现移动化办公。用户可以随时随地地进行个人文件的上传、下载、删除以及文件目录的新建和修改。在线文件管理系统具有如下显著的作用:(1)文件存储职员常常有这样的烦恼,每天的办公文件处理不完希望带回家继续,但是携带u盘等又容易遗失或者数据损坏,造成不必要的烦恼。通过网络实现数据存应该是最佳选择,在线文件管理系统可以通过互联网络,在全世界的任何地方在线存储读取文件数据,实现真正意义上的3a服务(即anytime、anywhere、anyone)。(2)私密空间在线文件管理系统是一个完全属于用户的私密空间,无论是数据资料、程序文件、还是私人的邮件、通讯录,都可以安全的放在管理系统内。开启密码掌握在使用者手中,保护个人隐私即安全又可靠,能够简单有效地防止因为个人隐私泄露而造成的损失和尴尬。(3)安全可靠面对汹涌澎湃的电脑病毒,面对脆弱的硬件,面对不可预测的突发事件,只有及时地备份数据才能为人们提供万无一失的数据安全保护。将最重要的据,使用在线文件管理系统进行备份和在线保存,可以在有意外发生时,通过备份数据对数据进行灾难的恢复,使数据更加安全,可靠。因此将重要文件放在网络硬盘上保存起来,就可以避免病毒危害,黑客入侵和硬盘损坏所带来的危险。2.3 系统总体规划 2.3.1 功能需求 本系统给用户、办公单位提供了一个解决网络文件存储系统的平台,用户可以方便的将自己的文件上传并保存到该系统中。用户系统的主要功能要求: 用户可以了解该系统的功能组织情况; 用户可以上传自己的文件,图片等媒体资料; 用户可以共享,创建,查看目录;功能模块如图2-1:图 2-1 在线文件管理系统层次结构框图3 系统设计在线文件管理系统主要为用户提供一块网络上的存储空间,在这个空间中属于用户的存储空间里,用户可以像在本地计算机上操作自己的硬盘空间中的文件一样随意操纵该存储空间内的文件夹和文件。一个在线文件管理系统为用户提供的文件夹和文件的操作包括:1) 新建文件夹2) 修改文件夹3) 删除文件夹4) 移动文件夹5) 添加文件6) 查看文件7) 删除文件8) 下载文件9) 移动文件10) 搜索文件11) 编辑文件以上功能是用户对自己空间内文件夹和文件所具有的基本操作,具有了这些操作,用户就可以再自己的存储空间内随意操作和管理自己的文件件资源。3.1 界面设计用户在使用在线文件管理系统之前,首先需要登录在线文件管理系统或向在线文件管理系统注册身份,用户可以使用如图3-1所示的界面登录在线文件管理系统,使用如图3-1所示的界面向在线文件管理系统注册身份。之所以需要用户拥有在线文件管理系统的身份,是为了在线文件管理系统的权限控制,每个注册的用户拥有系统提供的使用空间,该空间只能由拥有它的用户所访问(共享的文件和文件夹除外)和操作,其他的用户是不能访问的,这个本地硬盘空间的使用一样。图 3-1 登录与注册模块用户登录在线文件管理系统以后就进入如图3-2所示的在线文件管理系统主界面,在这里用户可以对自己的在线文件管理系统实施像对本地硬盘一样的操作。在如图3-2所示的在线文件管理系统操作主界面中,可以看到自己网络硬盘空间下的当前目录下的文件夹和文件,图中列表所示的是当前用户的顶级目录下的文件夹目录;用户可以新建一个文件夹,编辑当前的文件夹,删除文件夹或为文件夹上传文件,也可以搜索自己目录下的文件,还可以把文件夹和文件移动到其他文件夹。图 3-2 主界面模块在在线文件管理系统里新建文件夹和在本地硬盘上创建文件夹一样。单击图中的“新建文件夹”按钮,打开如图3-3所示的界面。在如图3-4所示的界面中,用户要为新建的文件夹选择父目录,贴图中默认的顶级目录,输入文件夹名,单击“确定”按钮即可。当用户创建新文件夹后,可以单击“返回”按钮回到在线文件管理系统主界面。图 3-3 新建文件夹模块图 3-4 修改文件夹模块在本地硬盘上编辑文件夹就是修改文件夹的名字,在网络硬盘上也一样,对文件夹的修改就是对文件夹名字的修改。单击图3-2文件夹列表中的“编辑”按钮即可打开的如图所示的界面中编辑该文件夹。在图3-4的“名称”文本框里输入新的文件夹名,单击“确定”按钮即可完成对文件夹的编辑。用户可以把不用的文件夹删除掉。单击图3-2文件夹列表中的在线文件管理系统即可删除相应文件夹。系统会提示用户让他确认是否真的删除该文件夹,提示界面如图3-5所示。图 3-5 消息提示界面移动文件夹的操作也是用户常用的操做,使用移动文件夹的功能,用户可以自由地管理自己空间内的文件夹,可以随意把文件夹连同该文件夹下的数据进行移动。在在线文件管理系统中用户可以把文件夹移动到其他文件夹下,使用图3-2中“移动到”按钮把选中的文件夹移动到目标文件夹下。操作过程如图3-6所示。在图3-6中,用户选择“资料”文件,选择目标文件夹“数据”,单击“移动到”按钮即可完成文件夹的移动。图 3-6 移动文件模块在线文件管理系统最大的作用就是提供网络空间让用户来操作自己的数据文件,因此提供方便的文件操作也是在线文件管理系统所必须做到的。上传文件是用户把自己的数据文件移到网络空间的接口,在图3-2中,单击文件夹列表后面的“上传文件”即可打开如图3-7所示的上传文件界面。在图3-7中单击“浏览”按钮打开如图3-8所示的界面,用户通过该界面浏览本地机器上要上传的文件,选中要上传的文件,单击“打开”按钮即可。图 3-7 上传模块图 3-8 选择文件有时可能同时上传多个文件,支持多文件的上传的系统会受到用户的欢迎。在图中3-7单击“增加上传文件”按钮即可打开一个浏览上传文件的界面,如图3-9所示。用户可以根据自己的需要来选择同时上传文件的数量。图 3-9 增加文件上传完毕后可以单击相应的文件夹名来查看上传的数据。这时用户就可以对已经上传的数据文件进行操作。编辑文件主要就是修改文件名,操作界面如图3-10所示。图 3-10 修改文件夹模块单击文件名可以查看该文件的属性,如图3-11所示。图 3-11 查看文件属性模块删除和移动文件的操作与删除和移动文件夹的操作一样,此外还可以下载上传的在线文件管理系统空间的数据文件。单击数据文件列表中的按钮即可下载该数据文件,如图3-12所示。图 3-12 下载文件夹模块以上是本书要设计的在线文件管理系统所具有的功能,主要分对文件夹和文件操作两种,两种对象的操作方式也非常类似,如编辑、删除等操作。只不过文件有一些特殊操作,如需要上传和下载。3.2 数据库设计数据结构的相对稳定性,可以作为新,旧信息系统转换的依据。根据系统功能设计的要求及功能模块的划分,对于系统信息数据库,可列出以下数据项和数据结构: (1)名称:user表,如下所示。 字段名称字段类型说明大小id长整型自动编号默认username文本用户名100password文本密码255email文本电子邮件200表 3-13 user表(2)名称:directory表 ,如下所示。 字段名称类型说明大小dirid长整型自动标记默认name文本文件夹/名200parentid长整型目录文件夹id默认contain长整型文件大小默认filecount长整型文件数量默认dircount长整型文件夹数量默认flag短整型文件/夹标示默认createdate事件类型创建日期默认usersid长整型用户id默认表 3-14 directory表(3)名称:url表,如表所示。字段名称字段类型说明大小urlid长整型自动标号默认url文本文件所在地址255type长整型文件类型默认dirid长整型文件所在文件夹默认createdate事件类型创建日期默认表 3-15 url表4 详细设计在线文件管理系统包含的业务逻辑主要是对文件和文件夹的操作,因此在实现该系统时首先可以编写一个文件和文件夹操作的类,该类命名为disk,在类disk里封装了诸如新建文件、新建文件夹的操作。disk类的定义代码如下:using system;using system.data;using system.configuration;using system.web;using system.web.security;using system.web.ui;using system.web.ui.webcontrols;using system.web.ui.webcontrols.webparts;using system.web.ui.htmlcontrols;using system.data.sqlclient;/ / disk 的摘要说明/ public class disk代码首部添加了一些需要用到的命名空间的引用,主体定义非常简单。类disk的定义非常简单,甚至不包括构造函数。该类主要封装对文件和文件夹的业务逻辑操作的方法。下面就逐一介绍这些办法。4.1 显示目录显示目录的方法showdirectory()用来获取当前登录用户名下的所有文件夹(见图3-2)。实现代码如下: / / 显示目录 / / / / public void showdirectory(dropdownlist dirlist, int nparentid,int userid) datatable datatable = getdirectorys(userid); dirlist.items.clear(); /清空所有节点 /datarow rowlist = datatable.select(parentid=-1); /if (rowlist.length = 0) return; /创建、添加根节点 dirlist.items.add(new listitem(/, 0); /创建其他节点 createchildnode(dirlist, datatable, 0, /); 这段代码定义了方法showdirectory()实现。该方法包括两个参数,dirlist表示要绑定的文件夹数据的下拉列表,userid表示当前登录用户的id。其算法是:首先调用一个方法getdirectory()来获取当前用户所拥有的所有目录,在dirlist里添加顶级虚拟目录,这里每个用户都有一个顶级虚拟目录,相当于在线文件管理系统的根目录,所有用户的文件都会放在该目录下,然后再调用一个递归函数creatchildnode()来把真正的目录绑定到dirlist中。4.2 获取子目录获取子目录的方法creatchildnode()用来把用户名下的真正的文件夹绑定到下拉列表中(见图3-2),实现代码如下: / / 获取子目录 / / / / / private void createchildnode(dropdownlist dirlist,datatable datatable,int nparentid,string sparentname)/选择数据时,添加了排序表达式orderbydatarow rowlist = datatable.select(parentid= + nparentid.tostring() + ,createdate desc);foreach(datarow row in rowlist)string sname = sparentname + rowname.tostring() + /;/创建新节点dirlist.items.add(new listitem(sname,rowdirid.tostring();/递归调用,创建其他节点createchildnode(dirlist,datatable,int32.parse(rowdirid.tostring(),sname);creatchildnode()方法是一个递归函数,由于文件目录级是一个树型结构,采用递归算法是一个比较好的选择。该方法包括四个参数:dirlist表示要绑定数据的下拉列表,datatable存放所有文件夹数据,nparentid表示父目录id,sparentname当前目录名。4.3 获取指定用户的所有文件夹方法getdirectorys()用来获取指定用户的所有文件夹(见图3-2)。实现代码如下: / / 获取指定用户的文件夹 / / / public datatable getdirectorys(int userid) /定义sql语句 string cmdtext = select * from directory where flag=1 and parentid-1 and usersid= + userid; datatable table = new datatable(); dal.executesql exec = new dal.executesql(); int flag = exec.run(table, cmdtext); if (flag = 1) return table; else return null; getdirectorys()包含一个参数userid,该参数用来获取指定用户的id。通过这个指定的id来搜索数据库中属于该id的文件夹。4.4 添加目录方法adddirectory()用来添加目录的信息(见图3-3)。实现代码如下: public int adddirectory(string sname, int nparentid, int userid) dal.executeprocedure exec = new dal.executeprocedure(); sqlparameter parameters = new sqlparameter(name,sname), new sqlparameter(parentid,nparentid), new sqlparameter(userid,userid), ; int flag = exec.run(adddirectory, parameters); return flag; adddirectory()包含参数sname,该参数用来获取要添加的名字;参数nparentid获取父目录的id;参数userid则获取当前登录用户的id。此外,该方法实现调用了存储过程adddirrctory。该存储过程的实现代码如下:alter procedure dbo.adddirectory(name varchar(200),parentid int, userid int) asdeclare dirid intinsert into directory (name,parentid,contain,dircount,filecount,flag,createdate,usersid)values(name,parentid,0,0,0,1,getdate(),userid)set dirid = identityupdate directory set dircount = dircount + 1 where dirid = parentid存储过程adddirrctory包含三个参数,与方法存储过程adddirrctory()的三个参数相对应。该存储过程包含两个业务:第一向数据表dirrctory添加一条数据,第二更新父目录文件中文件夹数量属性dircount,使其加1。4.5 编辑目录方法editdirectory()用来编辑指定的目录(见图3-4)。实现代码如下:public int editfile(int nfileid,string sname) dal.executesql exec = new dal.executesql();/定义sql语句string cmdtext = update directory set name =+ + sname + + where dirid= + nfileid.tostring() + ; return exec.run(cmdtext);editdirectory()包含参数sname,该参数用来获取要更新的名字;另一个参数ndirid获取要修改的目录的id。该方法很简单,就像它实现的业务逻辑一样简单,只是执行一条更新语句。4.6 删除目录方法deletedirectory()用来删除指定的目录。实现代码如下:public int deletefile(int nfileid)/创建链接 dal.executeprocedure exec = new dal.executeprocedure(); sqlparameter parameters = new sqlparameter(dirid,nfileid) ; return exec.run(pr_deletefile, parameters);deletedirectory()包含参数ndirid,获取要删除的目录的id。此外,该方法实现调用了存储过程pr_deletedirectory。该存储过程的实现代码如下:alter procedure dbo.pr_deletedirectory(dirid int)asdeclare index intset index = (select parentid from directory where dirid = dirid)begin tranupdate directory set filecount = filecount - 1 where dirid = indexdelete directory where dirid = diridcommit tran存储过程pr_deletedirectory包含一个参数,与方法deletedirectory()的一个参数对应。该存储过程包含两个业务:第一从数据表directory中删除指定的数据;第二更新父目录文件中文件夹数量属性dircount,使其减1。4.7 移动目录方法movedirectory()用来把指定的目录移动到其他目录之下(见图3-6)。实现代码如下:public int movefile(int nfileid,int nparentid) dal.executeprocedure exec = new dal.executeprocedure(); sqlparameter parameters = new sqlparameter(dirid,nfileid), new sqlparameter(parentid,nparentid), ; return exec.run(pr_movefile, parameters);movedirectory()包含一个参数ndirid,获取要移动的目录的id;另一个参数nparentid获取目标目录的id。此外,该方法实现调用了存储过程pr_movedirectory。该存储过程的实现代码如下:alter procedure dbo.pr_movedirectory(dirid int,parentid int) asif dirid parentidbegindeclare index intset index = (select parentid from directory where dirid = dirid)update directory set filecount = filecount - 1 where dirid = indexupdate directory set filecount = filecount + 1 where dirid = parentidupdate directory set parentid = parentid where dirid = diridend存储过程pr_movedirectory包含两个参数,与方法movedirectory()的两个参数对应。移动一个文件夹所包含的业务逻辑是比较复杂的:第一要修改被移动文件夹的父目录中文件夹的数量(减去由被移动文件夹所包含文件夹数量加1得到的数量),第二修改被移动文件夹的父目录中文件的数量(减由被移动文件夹所包含文件的数量),第三修改被移动文件夹的父目录属性parentid为目标目录的id。4.8 获取指定文件的信息方法getsinglefile()用来获取指定文件的信息(见图3-11)。实现代码如下: public datatable getsinglefile(int nfileid) dal.executesql exec = new dal.executesql(); datatable table = new datatable();/定义sql语句string cmdtext = select directory.*,url.url,url.type + from directory left join url on directory.dirid = url.dirid where directory.dirid=+ nfileid.tostring() + ; int flag = exec.run(table, cmdtext); if (flag = 1) return table; else return null; getsinglefile()包含一个参数nfileid,获取指定文件的id。4.9 添加文件方法addfile

温馨提示

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

评论

0/150

提交评论