《2022年ASPNET图馆管理完整.docx》由会员分享,可在线阅读,更多相关《2022年ASPNET图馆管理完整.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源XXXX 学院毕业设计说明书基于 ASP.NET+SQLserver的图书馆治理系统的设计与实现- 系统设置模块的设计与实现同学姓名: XXX学号: 2021201XXX年级专业: 2021 级运算机应用技术 2 年指导老师: XXXX系部: 运算机工程系提交日期: 2021 年 5 月欢迎下载精品学习资源目录1 前言 22 关键技术介绍 32.1 ASP.NET 32. 2 SQL Server 43 系统分析和设计 53. 1 需求分析 53.2数据库设计 53 3 系统总体设计 84 系统的实现 84.1 网站首页设计84.2 系统设置 104.2.1 图书馆信息 104.2
2、.2 治理员设置 125 终止语 15参考文献 16欢迎下载精品学习资源基于 ASP.NET+SQLserver的图书馆治理系统的设计与实现- 系统设置模块的设计与实现作者: XXX指导老师: XXX 东莞职业技术学院 2021 级运算机应用技术 2 年,东莞 523808摘要:本课题设计并实现了基于 Web的图书馆治理系统,该系统接受现今比较流行的ASP.NET语言,结合 SQL Server 数据库,实现了图书的借阅、查询、治理等基本功能;系统不仅爱惜便利,节省了图书馆的资源,便利图书馆进行图书治理,同时,用户也能够更容易更直观的查询书籍、治理藏书,使借书、仍书、查书的过程大大简化,更加的
3、便利和简洁;毕业设计做的系统就是对图书馆的书籍进行治理,主要工作是实现了图书信息功能,图书借仍功能等;图书信息功能是实现了图书的数字治理,能便利治理员快速查看图书信息;借书功能,用户可以通过此功能选择是否借出检索的书籍;仍书功能,读者可以查看自己所借书籍信息;治理员可以查看借书仍书历史和违规书籍信息;查看书籍详细信息, 治理员可以查看书籍的详细信息以及在图书馆的储备状态;本论文内容主要是运用软件工程的学问,先进行系统需求分析,之后是系统概要设计,详细设计,并且详细介绍了ASP.NET图书馆治理系统的操作代码和排序的代码编写和测试;关键词: ASP.NET语言;图书馆; SQL Server ;
4、IIS ; HTML; CSS欢迎下载精品学习资源1 前言随着社会的进展,每天都有数以十万、百万计的图书/ 期刊问世,图书馆的图书和期刊也在快速的增加;面对这些数量庞大的图书治理,需要处理复杂的读者信息,频繁的借仍图书信息,图书增减信息,假如仍然接受传统的人工管理方法,既费时费劲,更简洁出错;信息技术的进展给图书的治理带来了新的机遇;使用图书治理系统对图书馆进行治理,这不仅解决了一系列的弊端和问题,更加提高了工作效率;推行图书治理自动化的基本目标,在於把图书馆由图书治理的农业社会带入图书馆的工业社会,并以创新具工业化作业精神的服务制度,来中意读者的资讯需求;图书馆唯有迈向自动化,才能面对资讯消
5、费者新奥的需求; 图书馆自动化的主要目标,在於加强服务而不在於精简人力;换言之,其 效益不在於节省现有的人力、物力,而在於供应许多尚未自动化作业时,所无法供应之服务,期望以最快的速度将资讯传递给读者做最适当之运用;以信息化高效治理代替旧的手工作坊;开发图书借阅系统,进一步提高办学效益和现代化信息治理水平;建立学院数字化WEB图书治理系统,为广大师生供应便利、快捷的资料信息猎取渠道和手段;减轻图书治理员的负担,节省人力物力开支;欢迎下载精品学习资源2 关键技术介绍2.1 ASP.NET随着网络经济的到来,微软公司期望帮忙用户在任何时候、任何地方、利用任何工具都可以获得网络上的信息,并享受网络通信
6、所带来的欢快;.NET 战略就是为实现这样的目标而设立的;现在越来越多的企业都建立了自己的W W W 网站,企业通过网站可以呈现产品,发布最新动态,与用户进行沟通和沟通,开展电子商务等;目前都是基于ASP.NET 和脚本语言,将动态网页和数据库结合,通过应用程序来处理;ASP.NET具有如下的性能特点:1、由于 ASP.NET页面每次打开都必需经过先编译后说明的过程,所以页面在反复打开时速度没有任何提升,而ASP.NET页面只需要一次编译后不需要重新编译,这使得在多次拜望时速度有了极大的提升;2、由于 ASP.NET没有供应任何输出数据为内容的元件,所以在使用A S P .N E T 撰写数据
7、库页面时只能借助A D O 的 RecordSet对象逐笔读取记录,而ASP.NET通过 ADO.NET供应的 DataGrid等数据库元件可以直接和数据库联 系;3、ASP. NET 支持应用程序的实时更新;治理员不必关掉网络服务器或者甚至不用停止应用程序的运行就可以更新应用文件;4、ASP.NET实行“ code-behind ”方式编写代码使得代码更易于编写,结构更清晰,降低了系统的开发与爱惜的复杂度和费用;Microsoft公司推出了基于 XML的 Web Services平台的.NET 技术, 并供应包括 Visual Studio .NET在内的一系列 .NET 平台;而 Visu
8、al Studio .NET 平台支持的 C#是面对构件的新型开发语言 , 它具有 :1 支持构件开发; 2 面对对象; 3类型安全; 4 能支持版本处理等特点,因此, 开发基于 .NET 平台上的商品化构件 , 以及基于 .NET 平台开发应用程序将成为软件业的进展方向, 对基于.NET 平台的 C# 逆向工程工具 , 特别是支持 C#构件化特点的逆向工程工具的需求便日趋迫切;C # 是一种面对对象的语言, 同时也是面对构件的编程语言,它具有面对对象和面对构件两方面的功能; C # 支持全部关键的面对对象概念:封装、继承 和多态性;在 C # 中全部的对象被封装在类中,C # 取消了多继承,
9、每个类仅答应有一个基类,以Object作为基类 . ;当需要多继承时,可以运用接口, 一个类可以实现多个接口,从而实现多继承. ;C # 供应名字空间 namespace 声明一个范畴 , 以便组织代码并创建全局类型;在一个名字空间下 , 可以声明别的名字空间、类、接口、结构、枚举和代理;通过嵌套的名字空间, 把语义相关的程序分成层次结构,从而供应一个规律上的组织系统;欢迎下载精品学习资源2000 年 7 月, ASP.NET 发行; ASP.NET不是 ASP 的简洁升级,而是微软推出的新一代 Active Server Pages;ASP.NET 是微软进展的新的体系结构 . NET 的一
10、部分,其中全新的技术架构会让每个人员的编程生活变得更为简洁,Web 应用程序的开发人员使用这个开发环境可以实现更加模块化、功能更强大的应用程序的编程 4;2.2 SQL ServerSQL Server 是一个关系数据库治理系统,它最初是由Microsoft Sybase和Ashton-Tate 三家公司共同开发的,于1988 年推出了第一个OS/2 版本,在Windows NT 推出后 Microsoft 与 Sybase在 SQL Server 的开发上就分道扬镳了7;Microsoft 将 SQL Server移植到 Windows NT 系统上,用心于开发推广 SQLServer的 W
11、indowsNT 版本, Sybase就较用心于 SQL Server在 UNIX 操作系统上的应用;在本书中介绍的是 Microsoft SQL Server以后简称为 SQL Server或 MS SQL Server;SQL Server 2000 是 Microsoft 公司推出的 SQL Server数据库治理系统的较新版本,该版本继承了 SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用便利可伸缩性好与相关软件集成程度高等优点,可跨越从运行 MicrosoftWindows 2000 的膝上型电脑到运行 Microsoft Windows 2000的
12、大型多处理器的服务器等多种平台使用;欢迎下载精品学习资源3 系统分析和设计3.1 需求分析长期以来,人们使用传统的人工方式治理图书馆的日常业务,其操作流程 比较繁琐;在借书时,读者第一将要借的书和借阅证交给工作人员,工作人员 然后将每本书的信息卡片和读者的借阅证放在一个小格栏里,最终在借阅证和 每本书贴的借阅条上填写借阅信息;在仍书时,读者第一将要仍的书交给工作 人员,工作人员然后依据图书信息找到相应的书卡和借阅证,并填写相应的仍 书信息, 明白用户的明确需求, WEB图书治理系统需要中意来自三方面的需求, 这三个方面分别是图书借阅者、图书馆工作人员和图书馆治理人员;图书借阅 者的需求是查询图
13、书馆所存的图书、个人借阅情形及个人信息的修改;图书馆 工作人员对图书借阅者的借阅及仍书要求进行操作,同时形成借书或仍书报表 给借阅者查看确认;图书馆治理人员的功能最为复杂,包括对工作人员、图书 借阅者、图书进行治理和爱惜,及系统状态的查看、爱惜并生成催仍图书报表;图书借阅者可直接查看图书馆图书情形,假如图书借阅者依据本人借书证号和密码登录系统,仍可以进行本人借书情形的查询和爱惜部分个人信息;一般情形下,图书借阅者只应当查询和爱惜本人的借书情形和个人信息,如查询和爱惜其他借阅者的借书情形和个人信息,就要知道其他图书借阅者的借书证号和密码;这些是很难得到的,特别是密码,所以不但中意了图书借阅者的要
14、求,仍爱惜了图书借阅者的个人隐私;图书馆工作人员有修改图书借阅者借书和仍书记录的权限,所以需对工作人员登陆本模块进行更多的考虑;在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是仍书记录,并打印生成相应的报表给用户查看和确认;图书馆治理人员功能的信息量大,数据安全性和保密性要求最高;本功能实现对图书信息、借阅者信息、总体借阅情形信息的治理和统计、工作人员和治理人员信息查看及爱惜;图书馆治理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应当由图书馆
15、工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除;并且仍应具有生成催仍图书报表,并打印输出的功能;3.2 数据库设计1. 规律设计(1) 治理员权限设置表 tb_admSet,如表 3- 1 所示;欢迎下载精品学习资源同;字段名只有系统支配的用户才能操作图书馆治理系统,而用户的权限又各不相表 3- 1 治理员权限设置表数据类型长度主键否Varchar80否bit1否bit1否bit1否bit1否bit1否描述欢迎下载精品学习资源userName systemSet readerManage bookManage bookBorrow systemSe
16、arch(2) 图书借阅表 tb_bookBorrow,如表 3- 2 所示;治理员名称系统设置 读者治理 图书治理 图书借仍 系统查询欢迎下载精品学习资源图书借阅信息实体,用于储备全部图书借阅情形的信息,以精确地记录每本图书的借阅信息;欢迎下载精品学习资源字段名bookBarcode bookName borrowTimereturnTime readerBarCode readerName isReturn表 3- 2 图书借阅表描述图书条形码图书名称 借阅日期 应仍日期 读者条形码读者姓名 是否归仍欢迎下载精品学习资源数据类型长度主键否varchar50否varchar20否dateti
17、me8否datetime8否varchar50否varchar20否bit1否(3) 书架信息表 tb_bookcase,如表 3- 3 所示;表3-3书架信息表数据类型长度主键否描述Int4是书架编号varchar80否书架名称图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上;书架信息实体,用于储备图书馆中全部的书架信息;字段名bookcaseID bookcaseName(4) 图书信息表 tb_bookInfo,如表 3- 4 所示;表3- 4 图书信息表数据类型长度主键否varchar100是varchar100否int4否不同的图书,会有不同的图书信息;对这些图书
18、信息进行详细的记录,便利了图书的分类和查询;图书信息实体,用于储备全部图书的相关信息;欢迎下载精品学习资源字段名bookBarCode bookName bookType描述图书条形码图书名称 图书类型欢迎下载精品学习资源bookcaseint4否bookConcernvarchar100否authorvarchar80否书架类别 出版社名称作者名称pricemoney8否图书价格borrowSumint4否借阅次数(5) 图书类型信息表 tb_bookType 如表 3- 5 所示;图书馆会有不同类型的图书,为了防止图书归类发生纷乱,必需建立一个图书类型信息实体,用于储备图书的类型信息;表
19、3- 5 图书类型信息表字段名数据类型长度主键否描述typeIDInt4否图书类型编号typeNamevarchar50否类型名称borrowDayInt4否可借天数(6) 图书馆信息表 tb_library,如表 3- 6 所示;每个事物都会有其自身的历史背景,图书馆也不例外;为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于储备图书馆的有关信息;表 3- 6 图书馆信息表字段名数据类型长度主键否描述libraryNamevarchar80否图书馆名称curatorvarchar80否馆长名称telvarchar100否联系电话addressvarchar200否联系地
20、址emailvarchar100否电子邮件netvarchar200否网址upbuildTimedatetime8否建馆时间remarkvarchar500否备注(7) 读者信息表 tb_readerInfo,如表 3- 7 所示;当有读者借阅图书时,要对读者的各项信息进行记录,以便利归仍图书和已借阅图书的历史查询,读者信息实体,用于储备全部借阅图书的读者信息;表 3- 7 读者信息表字段名数据类型长度主键否描述readerBarCodevarchar50是读者条形码readerNamevarchar50否读者名称sexchar10否读者性别readerTypevarchar50否读者类型ce
21、rtificateTypeVarchar50否证件类型certificateVarchar50否证件号码telVarchar50否联系电话emailVarchar50否电子邮件remarkvarchar500否备注欢迎下载精品学习资源(8) 读者类型信息表 tb_readerType,如表 3- 8 所示;在读者群体中,会有不同的分类,例如借阅图书的读者可能是老师、同学和市民等,所以对读者人群进行有效的分类是至关重要的;读者类型信息实 体,用于储备读者的类型信息;当治理员登录图书馆治理系统时,需要通过登录窗口验证成功后才能进入系统主页;治理员信息实体,用于储备治理员的登录名称和登录密码;表 3
22、- 9 治理员信息表表 3- 8 读者类型信息表字段名数据类型长度主键否描述idint4是类型编号typevarchar50否类型名称numvarchar50否可借数量(9)治理员信息表tb_user,如表3- 9 所示;字段名数据类型长度主键否描述userIdint4是治理员编号userNamevarchar50否治理员名称userPwdvarchar50否治理员密码33系统总体设计图 3-1 系统总体设计图4 系统的实现4.1 网站首页设计治理员通过“系统登录”模块验证后,可以登录到图书馆治理系统的主页;系统主页主要包括 Banner 信息栏、导航栏、借阅排行榜和版权信息等4 个部分12
23、;网站首页运行成效,如图 4- 1 所示;图 4-1 网站首页其实现代码如下所示;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.Dat
24、a.SqlClient ;public partial class _Default : System.Web.UI.Pageprotected void Page_Loadobject sender, EventArgs eif SessionuserName .= null/判定用户是否登录bindBookInfo ;/ 调用自定义方法用来绑定图书借阅排行elseResponse.Redirectentry.aspx ; / 跳转到登录页面protected void bindBookInfostring sql = select top 10 * from tb_bookInfo ord
25、er by borrowSum desc;/ 设置SQL 语句gvBookTaxis.DataSource = dataOperate.getDatasetsql, tb_bookInfo; / 猎取图书信息数据源gvBookTaxis.DataBind ;/ 绑定 GridView 控件protected void gvBookTaxis_RowDataBoundobject sender, GridViewRowEventArgs eif e.Row.RowIndex .= -1/判定 GridView 控件中是否有值欢迎下载精品学习资源元格中int id = e.Row.RowIndex
26、 + 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 = dataOp
27、erate.getRowtypeSql ;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.getRowcaseSql;caseSdr.Read;e
28、.Row.Cells4.Text = caseSdrbookcaseName.ToString; /设置书架/ 设置鼠标悬停行的颜色e.Row.Attributes.AddonMouseOver, Color=this.style.backgroundColor;this.style.backgroundColor=lightBlue;e.Row.Attributes.AddonMouseOut, this.style.backgroundColor=Color;4.2 系统设置4.2.1 图书馆信息图书馆信息记录图书馆的各种相关信息,图书馆信息的E-R 图,如图 4- 2所示;图 4- 2
29、图书馆信息 E-R 图依据图书馆 E-R 图设计出图书馆信息页面,选择“系统设置”/“图书馆信息”命令,进入到图书馆信息页面,页面运行,如图4- 3 所示;图 4- 3 图书馆信息页面其实现代码如下所示;using System;using System.Data;using System.Configuration ;using System.Collections ;using System.Web;using System.Web.Security ;using System.Web.UI ;using System.Web.UI.WebControls ;using System.We
30、b.UI.WebControls.WebParts ;using System.Web.UI.HtmlControls ;using System.Data.SqlClient ;public partial class libraryInfo : System.Web.UI.Pageprotected void Page_Loadobject sender, EventArgs e欢迎下载精品学习资源if SessionuserName .= null/判定治理员是否登录if getSet/ 判定是否拥有权限if .IsPostBackbindLibrary ;elseResponse.Wr
31、itealert 您没有此权限 ; location=index.aspx ; ;elseResponse.Redirectentry.aspx ;/ 返回到登录页面protected void btnSave_Clickobject sender, EventArgs estring libraryName = txtLibraryName.Text;string curator = txtCurator.Text ;string tel = txtTel.Text ;string address = txtAddress.Text ;string email = txtEmail.Text
32、;string net = txtNet.Text ;string upbuildTime = txtUpbuildTime.Text;string remark = txtRemark.Text ;string sql = update tb_library set libraryName= + libraryName + ,curator= + curator + ,tel= + tel + ,address= + address + ,email= + email + ,net= +net + ,upbuildTime= + upbuildTime + ,remark= + remark
33、 + ;if dataOperate.execSQLsqlRegisterStartupScript, alert储存成功! ;elseRegisterStartupScript, alert储存失败! ;/自定义方法判定当前治理员是否拥有治理此页面的权限public bool getSetstring userName = SessionuserName.ToString;/ 猎取治理员登录名欢迎下载精品学习资源string sql = select * from tb_admSet where userName= + userName + ;SqlDataReader sdr = data
34、Operate.getRowsql ;sdr.Read;/ 读取一条记录return Convert.ToBooleansdrsystemSet;/ 返回是否拥有权限/自定义方法显示图书馆信息public void bindLibrarystring sql = select * from tb_library;SqlDataReader sdr = dataOperate.getRowsql ;sdr.Read;txtLibraryName.Text = sdrlibraryName.ToString; /猎取图书馆名称txtCurator.Text = sdrcurator.ToStrin
35、g;/ 猎取馆长txtTel.Text = sdrtel.ToString;/ 猎取电话txtAddress.Text = sdraddress.ToString;/ 猎取地址txtEmail.Text = sdremail.ToString;/ 猎取电子邮件txtNet.Text = sdrnet.ToString;/ 猎取网址txtUpbuildTime.Text = sdrupbuildTime.ToString; /猎取建馆时间txtRemark.Text = sdrremark.ToString;/ 猎取备注 15protected void txtRemark_TextChange
36、dobject sender, EventArgs e4.2.2 治理员设置治理员设置模块主要包括查看治理员列表、添加治理员、治理员权限设置和删除治理员 4 个功能;选择“系统设置” /“治理员设置”命令,进入到治理员设置页面;在此页面中将显示全部治理员的名称和治理员拥有的权限13 ;治理员设置页面,如图 4- 4 所示;图 4-4 治理员设置页面单击“添加治理员”连接按钮将弹出添加治理员页面对话框,在此对话框中可以添加新的治理员,新添加的治理员默认拥有图书借仍权限和系统查询权限,如图 4- 5 所示;图 4- 5 添加治理员图 4- 6 权限设置单击“权限设置”链接按钮将弹出治理员权限设置,
37、在此对话框中可以设置某一个治理员所拥有的权限,如图4-6 所示;单击“删除”按钮可以删除某一个治理员信息;其代码如下:using System.Web.UI.WebControls ;欢迎下载精品学习资源using System.Web.UI.WebControls.WebParts ;using System.Web.UI.HtmlControls ;using System.Data.SqlClient ;public partial class userManage : System.Web.UI.Pageprotected void Page_Loadobject sender, Ev
38、entArgs eif SessionuserName .= null/判定治理员是否登录if getSet/ 判定是否拥有权限bindUerManage ;elseResponse.Writealert 您没有此权限 ; location=index.aspx ; ;elseResponse.Redirectentry.aspx ;/ 返回到登录页面public void bindUerManagestring sql = select * from tb_admSet;gvAdmSet.DataSource = dataOperate.getDatasetsql, tb_admSet ;
39、/ 猎取数据源gvAdmSet.DataKeyNames=new string userName;/ 设置主键字段gvAdmSet.DataBind ;/ 绑顶 GridView 控件显示治理员信息protected void gvAdmSet_RowDeletingobject sender, GridViewDeleteEventArgs estring userName = this.gvAdmSet.DataKeyse.RowIndex.Value.ToString; /猎取主键字段string sql = delete from tb_admSet where userName= +
40、 userName + ;dataOperate.execSQLsql;/ 删除治理员信息bindUerManage ;/ 重新绑定治理员信息public bool getSetstring userName = SessionuserName.ToString;/ 猎取治理员登录名string sql = select * from tb_admSet where userName= + userName + ;SqlDataReader sdr = dataOperate.getRowsql ;sdr.Read;/ 读取一条记录return Convert.ToBooleansdrsyst
41、emSet;/ 返回是否拥有权限欢迎下载精品学习资源protected void Header1_Loadobject sender, EventArgs e欢迎下载精品学习资源5 终止语通过本次系统的设计分析,加深了对治理信息系统这门课程的熟识和懂得;进一步明白了信息系统的功能和作用,把握了治理信息系统开发和建立的要点,通过学习,初步把握开发治理信息系统和在治理中应用运算机的基础才能;治理信息系统是一个社会技术系统,它在应用过程中涉及治理制度、权力结构和人的习惯等等,因此它不但技术要求高,而且影响因素众多,是一个极其复杂的系统;由此,我们以后对于治理信息系统的学习中,应当尽量联系生产实际,通
42、过实际操作获得对感性熟识,提高应用才能和在实践中解决问题的才能及在团队中的协作才能;欢迎下载精品学习资源参考文献 1卫锋 . 基于 Asp.Net2.0 的网站用户问题解决方案的设计与实现J.软件导刊,202108 : 135-136. 2常婉纶,刘辉 . 基于ASP.NET构建安全的 Web应用程序 J.西安文理学院学报:自然科学版, 202103 : 57-60. 3李爱军 . 基于 ASP.NET的工程治理系统的网络安全模式争论J.办公自动化:综合月刊, 202108 : 43-45. 4李隽 . ASP NET应用程序的性能优化 J.中国电子商务, 202107 : 36-36. 5张树亮,李超 .ASP.NET2.0+SQL Server 网络应用系统开发案例精解M. 清华高校出版社2006: 137-143. 6余金山,王涛,徐建军.ASP.NET2.0+SQL Server 企业工程开发与实践 M. 电子工业出版社 2021: 84-91. 7矛健 .ASP.NET+SQL Server 全程指南 M. 电子工业出