1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C#毕业设计——基于C#+asp.net+SQL Server的多语种网络硬盘系统设计与实现(毕业论文

C#毕业设计——基于C#+asp.net+SQL Server的多语种网络硬盘系统设计与实现(毕业论文

时间:2021-07-13 22:14:50

相关推荐

C#毕业设计——基于C#+asp.net+SQL Server的多语种网络硬盘系统设计与实现(毕业论文

基于C#++SQL Server的多语种网络硬盘系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#++SQL Server的多语种网络硬盘系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

基于C#++SQL Server的多语种网络硬盘系统设计与实现(毕业论文+程序源码)1、项目简介2、资源详情3、关键词:4、毕设简介5、资源下载

1、项目简介

为满足不同语种人群对网络硬盘系统的需求,设计了多语种网络硬盘系统。采用 2.0开发语言,利用中的三层结构、B/S模式结构以及网页资源的设计思路,实现了包括文件夹的操作、文件的操作、网页的多语种化三个功能模块;通过文件夹功能模块,可以添加、删除、更改名字、移动、浏览文件夹;通过文件功能模块,可以查看文件属性、上传、下载、更改名字、移动文件;通过系统的多语种化模块,能够自动识别客户端的默认语言并反馈给客户端相应语言的网页。通过应用多语种网络硬盘系统,可以满足不同语种人群共享一个网络硬盘系统的需求,具有一定的应用价值。

2、资源详情

项目难度:中等难度

适用场景:相关题目的毕业设计

配套论文字数:11608个字27页

包含内容:整套源码+完整毕业论文


3、关键词:

计算机应用技术;网络编程; 2.0;资源本地化;自动识别

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言

1.1 课题背景

省略

1.2 课题的意义

省略

1.3 课题的研究方法

微软的.NET是目前应用最广泛、最成功的应用之一。它又很多优点,例如:它以应用最为广泛的WINDOWS操作系统作为基础、有大量相关的资料作为参考等等。系统的开发采用的是 Framework 2.0, Framework 2.0是微软最新的应用架构。系统的开发工具为Microsoft Visual Studio ,开发语言为和C#.NET,数据库采用SQL SERVER 2000。

2 开发知识背景

2.1 2.0简介

页面以.aspx扩展名存储。页面由程序员将文本、标记(例如HTML)以及特定服务器标记和脚本组合在一起,然后存储在Web服务器上。可以将存储后的页面看成是一套描述如何创建一个HTML页面的指令。当该页面被请求浏览时,服务器端程序将会用纯标记来创建一个客户端浏览器可以读懂并能呈现(render)的页面。因为呈现后的输出是纯标记,所以任何浏览器都能够读懂;所有的动态过程都发生在Web服务器端。特定服务器标记非常强大,例如,它可以对用户的动作做出反应,连接至数据存储以及自动创建非常复杂的HTML结构。

2.0是目前比较新的版本,具有一些程序员可以使用的特定的服务器控件,用于在页面上添加数据交互。这些专门的数据控件分为两组:数据源控件和数据绑定控件。数据源控件创建与数据库的链接。数据绑定控件则从数据源控件获取信息,并在页面上创建呈现。这种简单的双控件模式可用于多种情况。对于多种数据库类型,甚至是非关系型数据源,都有相应的数据源控件。同样地,有多种数据绑定控件可用来在页面上生成表格、树型、列表以及其他数据格式。

2.2 中的三层结构

用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级.

三层结构包含:表示层(USL),业务逻辑层(BLL),数据访问层(DAL)

1:数据库访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.

2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。

3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成 .aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

具体的区分方法

1:数据库访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。

2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。

3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。

2.3 B/S模式结构简介

B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。它的客户端就是浏览器,当系统需要升级,就不需要为每个现有的客户端应用程序升级,而只需对服务器上的服务处理程序进行修改。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。B/S架构管理软件更是方便、快捷、高效。B/S架构一般模式如下图所示:

图1 B/S架构一般模式

2.4 网页资源概述

如果创建的网页将由使用不同语言的用户阅读,则必须为这些读者提供用他们自己的语言查看网页的方法。一种方法是分别用各语言重新创建页面,但这种方法可能需要大量工作量、容易出错并且在更改原始页时很难维护。

为我们提供了一种方法,使用这种方法创建的页可以根据浏览器的首选语言设置或用户显式选择的语言获取内容和其他数据。内容和其他数据指的就是资源,此类数据可以存储在资源文件或其他源中。

在 网页中,可以将控件配置为从资源获取其属性值。在运行时,资源表达式将被相应资源文件中的资源替换。

3 系统需求分析

3.1 功能需求

3.1.1 对文件夹的操作

浏览文件夹下的文件和文件夹

用户进入系统时,用一个页面显示系统根目录下的文件夹及文件。用户还可以根据需要在此页面上对文件夹进行一级一级的浏览。与浏览文件夹下的文件和文件夹功能块相对应的页面也是系统的主页,它记录访问系统的客户端信息,并把客户端信息存储在数据库中,供系统统计使用。新建文件夹

既然是网络硬盘系统,那么它就应该和本地硬盘一样用户可以新建一些比较有个性、方便查找和管理的文件夹名。用户通过新建文件夹功能块可以在系统上创建以用户所需要的名字命名的文件夹,方便用户管理文件,同时也方便查找文件。删除文件夹

当用户有需要删除一个或多个文件夹的时候,则需要一个对应的删除文件夹的功能块。用户可以单击页面中的【×】按钮可以删除选择的文件夹。为了防止用户误操作,当删除某一个文件夹时,需要弹出一个对话框来提醒用户,表示该文件夹是否真的可以被删除。如果操作成功,则显示提示消息;否则弹出失败对话框。重命名文件夹

一个文件夹不能够描述文件夹下的内容的时候,就需要对文件夹进行更名。当用户有需要变更文件夹名字的时候,单击页面中对应文件夹的【Edit】按钮进入重命名文件夹的页面。页面上的【确定】按钮触发事件以实现重命名文件夹的功能。移动文件夹

当文件夹放错了地方,或是文件夹不应该归在当前目录下时,就需要使用到移动文件夹的功能。单击移动文件夹的页面中的【移动到】按钮可以移动选择的文件夹。移动文件夹的步骤具体为以下三步:选择移动的文件夹;选择移动到的文件夹;单击【移动到】按钮移动文件夹。

3.1.2 对文件的操作

上传文件

上传文件作为网络硬盘最重要、最基础的功能,用户可以通过上传页面上传一个或同时上传多个文件。上传的文件保存在服务器硬盘中,并把文件信息保存到数据库中。下载文件

同样,下载文件也是网络硬盘最为重要和基础的功能,用户使用此项功能可以从服务器上下载所需要的文件到本地硬盘上来。查看文件属性

用户在使用系统时,光看某一个文件的名字有的时候并不能判断出这个文件是否是他所需要的,所以在系统中添加了查看文件属性这个功能块。当用户点击文件名,并由文件的链接进入查看文件属性页面,在页面中显示了文件的名字、所在目录、类型、大小和创建时间。删除文件

当一个文件过时或则已经没有用处的时候,这个文件还留在服务器的硬盘上,这就占用了服务器的硬盘资源,所以就需要删除文件这项功能。它实现方式和删除文件夹功能一样都是在同一页面中完成的。移动文件

文件上传的时候传错了地方或是将文件归类到其他文件夹的时候,就需要把文件移动到相应的文件夹下。它的实现和移动文件夹功能一样同是单击浏览文件页面中的【移动到】按钮来完成的。

3.1.3 系统多语种化

系统所面对的用户不是使用单一语言的某一特定地区的人群,而是面对不同地区,使用不同语言的人群。这就要求系统具有多种语言来应对这种需求。

系统采用提供的使用网页资源本地化技术,来实现系统的多语种化。由于作者能力有限这里暂时先实现了三种语言,它们分别是:中文、日文和英文,其中中文为默认语言。

3.2 出错处理需求

要做到一个不出错的系统是非常难的,更何况系统是在短时间内完成的,系统出错是在所难免的。程序允许出错,但是要对错误进行相应的处理。这就需要一个专门的处理错误的页面。当系统发生异常时,系统会对异常进行捕获,然后把捕获的相关信息显示在错误处理页面。

3.3 开发环境的搭建

系统的用户可能使用的不同的平台来使用系统,系统是通过WEB形式运作,不同的平台都遵循WEB统一的协议。所以系统可以不用考虑用户使用的平台。在系统的开发过程中,采用的和C#.NET实现,这些都是微软的专属,所以开发的平台为WINDOWS。这里选用的操作系统为WINDOWS XP SP2。

Visual Studio 是微软最新的开发工具,也是世界上最优秀的开发软件之一,它以强大的WINDOWS为基础。Visual Studio 支持 2.0中的所有特性。它能让我们在开发过程中少写70%的代码。所以选择Visual Studio 作为开发工具。

由于在课堂上学习数据库中,SQL SERVER 2000最为熟悉,而且SQL SERVER 2000有着大量的用户,它的技术也是相当的成熟。所以在系统的开发中选用SQL SERVER 2000作为系统数据库。

4 系统的总体设计方案

4.1 系统设计思想

网络硬盘是目前比较流行的网络应用系统,它主要实现文件的共享与保存。

系统设计严格按照系统的需求分析来设计,以满足人们对多语种网络硬盘的需求。

4.2 系统业务概要描述及开发模型

系统运行在服务器上,用户使用终端上的浏览器(Browser)通过网络来访问系统。系统能够自动识别浏览器上设置的默认地区码,并返回相应语言的信息给浏览器。用户可以在系统上进行对目录的新建、删除、浏览、修改操作,对文件的上传、下载、搜索、修改,查看操作。

一般用户的操作流程是:

首先通过浏览器进入系统,用户会看到相应语言的首页。然后再是用户对文件和目录进行的一些操作。

整个系统及外部关系概要图见下:

图2 系统结构

4.3 系统设计目标和原则

系统实现了对文件和目录进行操作的八个功能,其中目录的操作为:添加、删除、更改名字,文件的操作为:查看属性、浏览、上传、下载、更改名字。

其设计原则归纳起来有如下几点:

多语言:

系统本着为使用不同语言的人使用同以系统的目的,采用最新的技术实现多语种化。由于时间的关系,系统目前只实现了英语、日语和中文三种语言。友好性:

系统维护简单、方便,用户界面直观清晰。实用性:

所有输入界面直观而方便,符合操作习惯和顺序。要求所有的显示内容简洁明了,美观,易懂。可扩充性:

系统采用三层结构设计,模块化设计,随时可以增加新的功能模块。

4.4 系统基本模块设计

在模块的设计开发过程中,值得注意的有模块的可维护性、可补充性、可读性以及可靠性等。其中最重要的是可维护性。

可维护性是指理解、改正、改动、改进软件的难易程度,通常影响软件的可维护性的因素有以下三点:

可理解性,提高软件的可理解性的措施:采用模块化的程序结构,书写详细正确的文档,采用结构化程序设计,使用良好的编程语言和程序设计风格;可测试性,测试和诊断软件中的错误的难易程度,提高软件可测试性的措施有:书写详细正确的文档,采用良好的程序结构,使用测试工具和调试工具,保存以前的测试过程和测试用例等;可修改性,提高软件的可修改性的措施有:采用各种设计准则如信息隐蔽原则、模块独立、模块间联系的低耦合、高内聚。

模块的功能分别设计如下:

1、 对目录操作模块:

主要设计有以下几项功能:

A. 添加文件夹;

B. 删除文件夹;

C. 更改文件夹名;

2、 对文件操作模块:

主要设计有以下几项功能:

A. 查看文件属性;

B. 浏览文件;

C. 上传文件;

D. 下载文件;

E. 更改文件名字;

3、 多语言化:

主要设计有以下几项功能:

A. 默认语言(中文);

B. 英语;

C. 日语;

4、 错误处理页面设计:

错误处理页面处理整个应用系统的错误信息。

5、 数据库操作层:

数据库操作层负责连接数据库、查询数据、插入记录等对数据库进行的操作。

6、 业务逻辑层

负责响应用户层传过来的请求,发给数据库操作层,并接收从数据库返回的结果以提供给用户界面层。

5 系统的详细设计

5.1 数据库设计

数据库的名称为WebDiskDB,版本为SQL Server 2000。该数据库中有文件目录表Directory和文件属性表Url。

在文件目录表Directory中:

A、 DirID字段存储ID;

B、 Name字段存储文件夹或文件的名称;

C、 ParentID字段存储文件夹或文件父目录的ID;

D、 Contain字段存储文件夹或文件大小;

E、 FileCount字段存储包含文件的数量;

F、 DirCount字段存储包含文件夹的数量;

G、 Flag字段存储是文件还是文件夹的标识;

H、 CreateDate字段存储文件夹或文件的创建时间

表1 文件目录表

在文件属性表Url中:

A、 UrlID字段存储ID;

B、 Url字段存储文件的链接地址;

C、 Type字段存储文件的类型;

D、 DirID字段存储文件在文件目录表中的DirID值;

E、 CreateDate字段存储文件的创建时间;

表2 文件属性表

5.2 设计错误处理页面

错误处理页面ErrorPage.aspx处理整个应用系统的错误信息。当应用程序发生错误时,跳转到该页面,并在该页面显示错误信息。

该页面设计比较简单。当页面初始化时,首先又函数Page_Load(object sender, EventArgs e)获取发生错误页面的地址,并把该地址保存在ViewState对象中,供页面上返回按钮相对应的事件BackBtn_Click(object sender,System.EventArgs e)使用。

5.3 数据库操作层设计

数据库操作层是直接与数据库打交到,它的上一层不需要了解这一层内部的详细结构,我们就把它用一个类Disk给封装起来,给它的上一层提供一个接口IDisk就行了。

接口IDisk的实现:

获取所有目录SqlDataReader GetAllDirectoryFile();

获取子目录和文件信息SqlDataReader GetDirectoryFile(int nParentID);

获取所有目录信息SqlDataReader GetDirectorys();

获取子目录信息SqlDataReader GetDirectory(int nParentID);

获取单个目录信息SqlDataReader GetSingleDirectory(int nDirID);

新建一个目录int AddDirectory(string sName,int nParentID);

重命名目录int EditDirectory(int nDirID,string sName);

删除一个目录int DeleteDirectory(int nDirID);

移动一个目录int MoveDirectory(int nDirID,int nParentID);

获取所有文件SqlDataReader GetFiles();

获取给定目录下的所有文件SqlDataReader GetFile(int nParentID);

获取单个文件SqlDataReader GetSingleFile(int nFileID);

上载一个文件int AddFile(string sName,int nParentID,int nContain,string sUrl,string sType);

修改文件的名称int EditFile(int nFileID,string sName);

删除一个文件int DeleteFile(int nFileID);

移动文件 int MoveFile(int nFileID,int nParentID);

搜索文件 SqlDataReader SearchFiles(string sKey);

类Disk除了实现接口IDisk的所有方法外,类还定义了自己的方法ShowDirectory(DropDownList dirList,int nParentID)和方法CreateChildNode(DropDownList dirList,DataTable dataTable,int nParentID,string sParentName)。这两个方法实现按目录层次结果显示目录的信息。

5.4 多语言化实现的设计

在创建资源文件时,首先开始创建基文件 .resx。对于要支持的每种语言,分别创建一个新文件,该文件具有同一基本文件名但包含语言或语言及区域性(区域性名称)。

在运行时, 使用与 CurrentUICulture 属性的设置最为匹配的资源文件。线程的 UI 区域性根据页的 UI 区域性进行设置。例如,如果当前的 UI 区域性是西班牙语,则 使用.es.resx 文件的已编译版本。如果当前的 UI 区域性没有匹配项,则 会使用资源后备;首先用特定区域性的资源,接着用非特定区域性,最后用默认资源文件。

在 中,可以创建具有不同范围的资源文件。可以创建全局资源文件,这意味着可以从位于网站中的任意页或代码读取这些资源文件。也可以创建本地资源文件,这些文件存储单个 网页(.aspx 文件)的资源。将资源文件放入应用程序根目录的保留文件夹 App_GlobalResources 中,即可创建全局资源文件。

App_GlobalResources 文件夹中的任何 .resx 文件都具有全局范围。此外, 还生成了一个强类型对象,这为开发人员提供了一种以编程方式访问全局资源的简单方法。本地资源文件是只应用于一个 页的文件(带有 .aspx、.ascx、.master 等扩展名的 页)。本地资源文件所放入的文件夹具有 App_LocalResources 保留名称。App_LocalResources 文件夹可以存在于应用程序的任何文件夹中,这与 App_GlobalResources 根文件夹不同。通过资源文件名将一组资源文件与特定的网页相关联。文件的基名称与页文件名相同,后跟语言和区域性名称,最后以扩展名 .resx 结尾。

资源文件分为全局资源文件和本地资源文件,它们各有各的优点与缺点。使用全局资源文件可以在各页之间共享资源,并且全局资源文件中的资源还是强类型的,用于以编程方式访问。本地资源文件使得单个 网页的资源比较容易管理,但不能在各页之间共享资源。此外,如果有许多页必须本地化为多种语言,则可能会创建大量本地资源文件。如果站点是具有许多文件夹和使用多种语言的大型站点,则使用本地资源可能快速地在应用程序域中扩展程序集的数量。多语种网络硬盘系统是一个小型的系统,它的文件夹比较少,如果采用本地资源文件,则它的代码管理起来不方便。所以在系统开发中采用全局资源文件。

创建资源文件后,即可在 网页中使用这些文件。通常使用资源来填充页上各控件的属性值。例如,可以使用资源设置 Button 控件的 Text 属性,而不必将该属性硬编码为特定的字符串。使用资源设置控件属性值,可以使用隐式本地化或显式本地化:隐式本地化使用的是本地资源,并允许将控件属性自动设置为匹配的资源;显式本地化可以使用资源表达式将控件属性设置为本地或全局资源文件中的特定资源。由于系统开发采用的是全局资源文件,所以这里就只能使用显式本地化。

采用全局资源显式本地化时,必须为要设置的每个属性分别使用一个资源表达式。表达式为如下形式:<%$ Resources: Class , ResourceID %>,其中Class是可选的,ResourceID是必需的。下面就是使用全局资源本地化的具体过程。

首先建立3个与语言相对应的资源文件leng.resx、leng.ja.resx、leng.en.resx,他们分别对应中文,日文,英文。其中leng.resx是基资源文件,也是默认或后备资源文件。在创建资源文件的时候,VS会自动将所创建的资源文件放到应用程序根目录的保留文件夹 App_GlobalResources 中。资源文件创建好后,接着创建资源文件中的键/值对应。例如:页脚部分将文件移动到另外一个文件夹的Button控件的Text属性的对应键名为moveto,它在基资源文件中leng.resx的值是:移动到;在日文资源文件leng.ja.resx中对应的值是:移動;在英文资源文件leng.en.resx中对应的值是:Moves to。

然后在创建控件时,为控件绑定数据就可以实现。如:

图3 绑定数据

最后, 设置所有页的区域性和 UI 区域性。向 Web.config 文件添加一个 globalization 节,然后设置 uiculture 和 culture 属性为auto。

这样在系统运行时就会根据客户端的地区信息来载入相关的语言了。

5.5 主要用户界面层的实现

用户界面层直接面向用户,它使用数据库操作层的方法来获取数据,这样开发难度就大大的降低了。

5.5.1 主页的实现

浏览网络硬盘由ShowDisk.aspx.cs实现。页面初始化时,要实现下面三个功能:

(1) 获取参数DirID和ParentID的值

(2) 显示DirList控件的目录信息。

(3) 显示当前目录下的硬盘信息。如果参数DirID大于-1,则显示DirID目录下的信息;如果ParentID大于-1,则显示ParentID目录下的信息;否则显示跟目录下的信息。上述功能由函数Page_Load(object sender, EventArgs e)实现。

函数BindDirectoryData()显示控件DirList的目录信息,这些功能都是由函数ShowDirectory(DropDownList dirList,int nParentID)实现。函数BindDirectoryData()的程序代码如下:

private void BindDirectoryData(){///显示目录列表信息Disk disk = new Disk();disk.ShowDirectory(DirList,-1);if(DirList.Items.Count > 0){DirList.SelectedIndex = 0;}disk.ShowDirectory(MoveDirList,-1); }

函数BindDirectoryData(int nParentID)首先根据参数nParentID从数据库中获取ID值为nParentID的目录和文件,然后使用DiskView控件显示文件夹和文件等信息,并设置【返回上级目录】按钮的可用性。函数BindDirectoryData(int nParentID)的程序代码如下:

private void BindDirectoryData(int nParentID){///显示目录列表信息IDisk disk = new Disk();SqlDataReader dr = disk.GetDirectoryFile(nParentID);///绑定控件的数据DiskView.DataSource = dr;DiskView.DataBind();dr.Close();ReturnBtn.Visible = nParentID > 0 ? true : false;}

页面在显示目录、文件的标志时,使用函数FormatImageUrl(bool bFlag,string sType)获取图象的链接地址。该函数根据目录或者文件的类型获取不同图象的链接地址。

页面在显示目录、文件时,需要使用不同的链接地址。因此,页面使用函数格式化链接地址,由函数FormatHerf(int nDirID,int nParentID,bool bFlag)实现,该函数根据参数bFlag返回不同的链接地址。它的程序代码如下:

protected string FormatHerf(int nDirID,int nParentID,bool bFlag){if(bFlag == true){return ("ShowDisk.aspx?DirID=" + nDirID.ToString() + "&ParentID=" + nParentID.ToString());}else{return ("ViewDisk.aspx?DirID=" + nDirID.ToString() + "&ParentID=" + nParentID.ToString());}}

改变DirList控件的选择时,需要重新绑定DiskView控件的数据。该功能由DirList控件的事件DirList_SelectedIndexChanged(object sender,EventArgs e)实现。它的程序代码如下:

protected void DirList_SelectedIndexChanged(object sender,EventArgs e){///绑定控件的数据BindDirectoryData(Int32.Parse(DirList.SelectedValue));}

图4 硬盘主页

5.5.2 文件上传页面的实现

上载文件和同时上载多个文件的功能都由页面UploadFile.aspx实现。它的代码文件为UploadFile.aspx.cs。函数UploadFiles(int nParentID)实现上载文件的方法如下:

(1) 从HttpContext的当前上下文的Request对象中获取所有文件,并用列表fileList保存。

(2) 获取fileList中每一个文件,表示为hPostedFile。

(3) 获取文件的名称并把它保存在硬盘上。

(4) 从已经上传的文件信息保存到数据库中。

(5) 在页面上显示已经上传的文件信息。

图5 添加文件页面

5.5.3 文件属性页面的实现

查看文件属性由ViewDisk.aspx实现。ViewDisk.aspx在初始化时,首先从地址栏中获取参数nDirID和参数nParentID的值,然后显示文件的属性。

函数BindFileData(int nDirID)根据参数nDirID从数据库获取文件的属性

由于文件所在目录没有在数据库中直接保存,因此需要动态创建。该功能由函数CreateDir(int nDirID)和函数InsertParentDir(DataTable dataTable,int

nParentID,StringBuilder sDir)实现。创建文件所在目录的具体方法如下:

(1) 定义保存目录的字符串dirSB;

(2) 从数据库中获取所有目录,并使用DataTable对象dataTable保存获取的结果;

(3) 获取当前文件的父目录的DirID,并根据此DirID值获取它的名称,并把该名称添加到字符串dirSB中;

(4) 获取步骤(3)文件的父目录,并重复步骤(3),直到ParentID的值为-1。

其中,步骤(1)和步骤(2)由函数CreateDir(int nDirID)实现,步骤(3)和步骤(4)由函数InsertParentDir(DataTable dataTable,int

nParentID,StringBuilder sDir)实现。

图6 查看文件属性页面

5.5.4 搜索文件页面的实现

搜索文件功能由SearchFile.aspx实现,它的代码隐藏文件为SearchFile.aspx.cs。

搜索功能是由SearchBtn_Click(object sender,EventArgs e)实现,具体代码如下:

protected void SearchBtn_Click(object sender,EventArgs e){///定义对象IDisk disk = new Disk();///执行数据库操作SqlDataReader dr = disk.SearchFiles(Name.Text.Trim());FileView.DataSource = dr;FileView.DataBind();dr.Close();}

图7 搜索页面

5.5.5 创建文件夹页面的实现

创建文件夹功能由页面AddFolder.aspx实现,它的隐藏代码文件为AddFolder.aspx.cs。

该功能由事件AddBtn_Click(object sender,EventArgs e)实现,它调用AddDirectory(string sName,int nParentID)添加新文件夹到数据库中。它的具体代码如下:

protected void AddBtn_Click(object sender,EventArgs e){try{///定义对象IDisk disk = new Disk();///执行数据库操作disk.AddDirectory(Name.Text.Trim(),Int32.Parse(DirList.SelectedValue));Response.Write("<script>alert('" + "添加数据成功,请妥善保管好你的数据!" + "');</script>");}catch(Exception ex){///跳转到异常错误处理页面Response.Redirect("ErrorPage.aspx?ErrorMsg=" + ex.Message.Replace("<br>","").Replace("\n","")+ "&ErrorUrl=" + Request.Url.ToString().Replace("<br>","").Replace("\n",""));}}

5.5.6 重命名文件夹页面的实现

重命名文件夹功能由页面EditFolder.aspx实现,它的代码隐藏文件为EditFolder.aspx.cs

重命名功能的实现由事件EditBtn_Click(object sender,EventArgs e)实现,它调用函数EditDirectory(int nDirID,string sName)修改DirID值为nDirID的文件记录名称。它的具体代码如下:

protected void EditBtn_Click(object sender,EventArgs e){try{///定义对象IDisk disk = new Disk();///执行数据库操作disk.EditDirectory(nDirID,Name.Text.Trim());Response.Write("<script>alert('" + "修改数据成功,请妥善保管好你的数据!" + "');</script>"); }catch(Exception ex){///跳转到异常错误处理页面Response.Redirect("ErrorPage.aspx?ErrorMsg=" + ex.Message.Replace("<br>","").Replace("\n","")+ "&ErrorUrl=" + Request.Url.ToString().Replace("<br>","").Replace("\n",""));} }

5.6 多语言关键技术实现

1、 母板页

母板页是 2.0中新增的功能,使用母板页可以为WEB应用程序中的页创建一致的布局。单个母板页可以为WEB应用程序中的所有页定义所需的外观何标准行为。然后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母板页合并以将母板页的布局与内容页的内容组合在一起输出。

2、 资源本地化

系统是以资源文件来实现系统的多语种化。资源文件是 XML 文件,其中包含要转换为不同语言或图像路径的字符串。资源文件包含键/值对,每一对都是一个单独的资源。键名不区分大小写。

为每种语言(如英语和法语)或每种语言和区域性(如英语 [英国]、英语 [美国])分别创建一个资源文件。每个本地化资源文件都有相同的键/值对;本地化资源文件与默认资源文件的唯一区别就是前者所包含的资源可能少于后者。

中的资源文件具有 .resx 扩展名。在运行时,.resx 文件将编译进一个程序集内,该程序集有时称为附属程序集。由于 .resx 文件是用与 网页相同的方式动态编译的,因此不必创建资源程序集。编译过程将多个语言类似的资源文件压缩在同一程序集内。

6 系统测试

测试环境:操作系统为Windows XP SP2,数据库为SQL SERVER 2000,客户端为:IE7.0。

测试步骤:启动IIS,将IIS的 虚拟目录指向多语种网络硬盘系统所在的文件夹;启动SQL SERVER 2000回复数据库WEBDISK;修改系统的配置文件。这样服务器就搭建好了。

打开浏览器,在地址栏中键入http://localhost访问系统。系统测试的相关画面如下:

图8 程序主页

图9 语言设置

图10 日文界面

图11 英文界面

测试结果:此次测试在Windows下测试,通过IE浏览器和火狐浏览器作为客户端来使用系统。测试表明系统能正常运作,达到预期目的。实现了多语种网络硬盘的全部功能:根据浏览器的语言设置来载入相应语言的网页,对目录的操作:浏览、创建、重命名、移动、删除,对文件的操作:查看属性、上传、下载、重命名、移动这些功能都能实现。在测试过程中,在不改动程序代码的前提下添加另外一种语言的资源文件,浏览器设置成相应的语言后使用系统,系统也能载入于此资源文件相同的语言。

测试结果分析:系统在测试中效果比较理想,系统的功能实现严格按照系统需求分析来实现的。同时,测试时使用不同的客户端来使用系统,程序界面和功能都能很好的兼容。这说明系统的兼容性很好。只是添加一个资源文件就能达到增加一种语言的目的,这个就证明了系统的扩展性能非常的好。

结 论

设计的多语种网络硬盘系统实现了三个方面的功能:对文件夹的新建、删除、更改名字、移动;对文件的上传、下载、更改名字、查看属性、移动到其他文件夹;网页的多语种化。

通过系统测试,系统能够完成需求分析中的全部功能。并能只通过添加一个资源文件就能扩展系统的一个语种,证明了系统的可扩展性能很好。测试结果表明开发多语种网络硬盘系统达到了毕业设计的目标。系统的优点在于采用了使用资源本地化的技术,能够快速的实现系统的多语种化,并且扩展系统的语种也非常的方便。

通过应用多语种网络硬盘系统,可以满足不同语种人群共享一个网络硬盘系统的需求,可见系统具有一定的应用价值。

省略

参考文献

[1] 方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社,.8。

[2] 马军.精通2.0编程[M].北京:人民邮电出版社,.6。

[3] 马军.2.0企业级应用[M].北京:人民邮电出版社,.6。

[4] 郭瑞军,郭馨君.2.0数据库开发实例精粹[M].北京:电子工业出版社,.5。

[5] 李玉林.2.0网络编程从入门到精通[M].北京:清华大学出版社,.9。

[6] 吉根林,崔海源等.程序设计教程[M].北京:电子工业出版社,.8。

[7] 张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,.12。

致 谢

省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

C#毕业设计——基于C#++SQL Server的多语种网络硬盘系统设计与实现(毕业论文+程序源码)——多语种网络硬盘系统

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。