论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > .NET >

A450ASP.NET图书馆管理信息系统

3.1.4数据库的保护

       数据库的保护主要内容是数据库的备份恢复、数据的事务性、以及如何进行并发控制。其中备份和恢复容易理解,这里主要阐述其它两项。 http://www.paper51.com

(1)  事务是一组操作序列.但是从用户的角度看来,事务是一个不可分割的操作序列。事务中的操作要么都做,要么都不做.事务不应该丢失,不应该被分割完成。 内容来自www.paper51.com

举个例子,从某个银行帐户向另一个帐户转入资金。这个过程分两步,首先将资金从一个帐户扣除,然后转入另一帐户。这个过程中,如果资金扣除以后由于一些因素导致失败。则资金就从一个帐户上扣除但没有转到另一个帐户上,就导致了两个用户都失去了这笔资金。如果将这两步组成一个事务,充分利用事务的共进共退性就可以避免这一点。 paper51.com

SQLserver2000事务语句主要包括BEGINTRANSACTION(开始一个事务),COMMIT TRANSACTION(提交事务),ROLLBACK TRANSACTION(回滚事务)。 copyright paper51.com

(2)       数据库并发控制:在图书馆管理信息系统中,同时可能有多个客户端在进行数据操作。当多个用户试图同时修改数据时,需要建立控制机制来防止一个用户的修改对同时操作的其他用户所作的修改产生不利的影响。处理这种情况的系统叫做“并发控制”。处理并发的技术主要是封锁。ADO.NET数据结构基于断开的数据,使用开放式并发。 内容来自www.paper51.com

3.2  使用存储过程

内容来自www.paper51.com

在使用 SQLServer 2000 创建应用程序时,T-SQL 编程语言是应用程序和 SQL Server 数据库之间的主要编程接口。使用 T-SQL 程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向 SQL Server 发送命令并处理结果的应用程序;也可以将程序在 SQLServer 中存储为存储过程,并创建执行存储过程并处理结果的应用程序。

内容来自论文无忧网 www.paper51.com

    SQLServer 中的存储过程与其它编程语言中的过程类似,原因是存储过程可以:

paper51.com

  • 接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。
  • 包含执行数据库操作(包括调用其它过程)的编程语句。
  • 向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。

    使用SQLServer 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优点有:

    内容来自论文无忧网 www.paper51.com

    • 允许模块化程序设计。

      只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。 copyright paper51.com

      • 允许更快执行。

        如果某操作需要大量 T-SQL 代码或需重复执行,存储过程将比 T-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 T-SQL 语句时,都要从客户端重复发送,并且在SQL Server每次执行这些语句时,都要对其进行编译和优化。 paper51.com

        • 减少网络流量。

          一个需要数百行 T-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

          copyright paper51.com

          • 可作为安全机制使用。

            即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。

            http://www.paper51.com

            此外在web编程方面,存储过程在安全问题上还可以防止动态SQL漏洞攻击,笔者经过一些调查,发现现在很多网站都有动态sql漏洞。只需要将密码字段的值设定为(' or '1'='1)即可使用该网站的管理功能。 http://www.paper51.com

            我所开发的图书馆管理信息系统,无论在windows窗体编程和asp.net Web编程上都使用存储过程与数据库交互。 http://www.paper51.com

            3.3 .NET Framework平台概述 paper51.com

            图书馆管理信息系统的开发是基于.NET Framework平台的,所有在这里我们简单的介绍一下.NET Framework平台以及它的一些重要的技术

            paper51.com

            .NET Framework 是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。.NET Framework 旨在实现下列目标:

            paper51.com

            ·        提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。 内容来自论文无忧网 www.paper51.com

            • 提供一个将软件部署和版本控制冲突最小化的代码执行环境。
            • 提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。
            • 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。
            • 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。
            • 按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。

              图3-3

              paper51.com

              .NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。

              内容来自论文无忧网 www.paper51.com

              .NET Framework还具有多编程语言,现在可提供Visual Basic .NET、Visual C# .NET、VisualC++ .NET、Visual J# .NET等。.NET Framework为几种语言提供了统一的平台和统一的编程模型。 http://www.paper51.com

              ADO.NET 是一组向 .NET 程序员公开数据访问服务的类。ADO.NET 为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML 和应用程序数据的访问,因此是 .NET Framework 中不可缺少的一部分。ADO.NET 支持多种开发需求,包括创建由应用程序、工具、语言或 Internet 浏览器使用的前端数据库客户端和中间层业务对象。

              内容来自www.paper51.com

              可使用 .NETFramework 开发下列类型的应用程序和服务:

              内容来自www.paper51.com

              • 控制台应用程序。
              • Windows GUI 应用程序(Windows 窗体)。
              • ASP.NET 应用程序。
              • XML Web services。
              • Windows 服务。

                   我的图书馆管理信息系统中包括Windows窗体和ASP.NET两种应用程序。

                内容来自www.paper51.com

                3.4  ADO.NET技术探讨

                copyright paper51.com

                3.4.1 ADO.NET概述

                paper51.com

                ADO.NET 提供对 Microsoft SQL Server 等数据源以及通过 OLE DB 和 XML 公开的数据源的一致访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源,并检索、操作和更新数据。

                内容来自论文无忧网 www.paper51.com

                ADO.NET 有效地从数据操作中将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET 包含用于连接到数据库、执行命令和检索结果的 .NET Framework数据提供程序。您可以直接处理检索到的结果,或将其放入 ADO.NET DataSet 对象,以便与来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。ADO.NET DataSet 对象也可以独立于 .NETFramework 数据提供程序使用,以管理应用程序本地的数据。 paper51.com

                3.4.2 ADO.NET访问数据的基本方法

                http://www.paper51.com

                ADO.NET 结构如下:

                内容来自www.paper51.com

                图3-4 内容来自www.paper51.com

                    从图3-4可以看出,ADO.NET提供了两种访问数据的基本方法:通过DataReader和DataSet。下面分别讨论这两种方法:

                内容来自论文无忧网 www.paper51.com

                1)     DataReader: paper51.com

                    ADO.NETDataReader 从数据库中检索只读、只进的数据流。查询结果在查询执行时返回,在并存储在客户端的网络缓冲区中,直到您使用DataReader 的 Read 方法对它们发出请求。使用 DataReader 可以提高应用程序的性能,因为一旦数据可用,DataReader方法就立即检索该数据,而不是等待返回查询的全部结果;并且在默认情况下,该方法一次只在内存中存储一行,从而降低了系统开销。 内容来自论文无忧网 www.paper51.com

                    DataReader 提供未缓冲的数据流,该数据流使过程逻辑可以有效地按顺序处理从数据源中返回的结果。由于数据不在内存中缓存,所以在检索大量数据时,DataReader是一种适合的选择。

                内容来自论文无忧网 www.paper51.com

                2)     DataSet http://www.paper51.com

                ADO.NET DataSet 是数据的一种内存驻留表示形式,无论它包含的数据来自什么数据源,它都会提供一致的关系编程模型。一个DataSet 表示整个数据集,其中包含对数据进行包含、排序和约束的表以及表间的关系。 copyright paper51.com

                如图3-4所示,一个DataSet可以包含多个DataTable,利用数据存储的信息对它们进行填充.可以在DataSet中包含DataRelation对象, DataRelation对象用来描述DataSet中表之间的关系。这个DataRelation对象的所包含的约束就是我们在3.14中所讲的数据库完整性设计的内容。

                内容来自论文无忧网 www.paper51.com

                总之DataSet最大的特点就是:不依赖于连续的活动连接,其值是数据源的一个内存副本。

                内容来自论文无忧网 www.paper51.com

                图3-5

                paper51.com

                图3-5描述了用DataSet操作SQLserver2000的一般方法。 http://www.paper51.com

                用DataSet访问常规数据源的基本步骤是,先建立一个DataAdapter对象,如果只需只读访问数据,那么只要对DataAdapter指定一个SelectCommand即可。然后用DataAdapter填充DataSet。如果需要插入,更新或者删除数据,则需要在DataAdapter中相应的指定InsertCommand、UpdateCommand以及DeleteCommand,最后调用DataAdapter的Update方法。 copyright paper51.com

                3.4.3 使用ADO.NET操作SQLserver2000

                http://www.paper51.com

                    我的图书馆管理信息系统使用的是SQLserver2000数据库。 内容来自论文无忧网 www.paper51.com

                    在阐述了一些ADO.NET的基本内容后,我们来有针对性的讲一下如何通过ADO.NET访问SQLserver2000数据库。 内容来自论文无忧网 www.paper51.com

                    最新的.NET Framework1.1 包括 SQL Server .NETFramework 数据提供程序(用于 Microsoft SQL Server 7.0 版或更高版本)、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework数据提供程序以及Oracle .NET Framework 数据提供程序。分别可以建立四种不同连接,其主要功能如下。

                paper51.com

                (1) SqlConnection - 该对象管理与 SQL Server 7.0 版或更高版本的连接。通过忽略 OLE DB 层(还包括其他措施),对该对象进行优化以便将其用于 SQL Server 7.0 或更高版本。 copyright paper51.com

                (2) OleDbConnection - 该对象管理与可通过 OLEDB 访问的任何数据存储区的连接。 内容来自论文无忧网 www.paper51.com

                (3) OdbcConnection – 该对象管理与通过使用连接字符串或 ODBC 数据源名称 (DSN) 创建的数据源的连接。 内容来自论文无忧网 www.paper51.com

                (4) OracleConnection – 该对象管理与 Oracle数据库的连接。

                paper51.com

                   虽说SQL Server .NET Framework 数据提供程序、OLE DB .NETFramework 数据提供程序和 ODBC .NET Framework 数据提供程序都能访问SQLserver数据库,但微软公司推荐使用SQL Server .NETFramework 数据提供程序 paper51.com

                图书馆管理信息系统使用的就是SQL Server .NET Framework 数据提供程序。以下通过一些例子介绍图书馆管理系统中是如何通过SQL Server .NET Framework 数据提供程序与SQLserver2000数据库进行交互的。

                paper51.com

                在.net中使用SQL Server .NET Framework 数据提供程序,首先要导入System.Data.SqlClient命名空间。我们举例说明ADO.NET与SQLserver2000数据库交互的两种常见方式:A.直接使用数据命令;B.使用数据集。

                内容来自www.paper51.com

                A. 使用数据命令与数据库交互

                http://www.paper51.com

                要在数据库中执行操作,应执行 SQL 语句或存储过程(它包括 SQL 语句)。您使用 SQL 语句或存储过程读写行并执行聚合函数,例如添加或求平均值。您还使用 SQL 语句或存储过程创建或修改表或列、执行事务等。 http://www.paper51.com

                以下是一个图书馆管理系统中一个验证登陆的函数

                http://www.paper51.com

                Public Function validateLogin(ByVal uid As String, ByVal pwd As String) As Boolean

                copyright paper51.com

                        Dim IsCorrect As Boolean = False copyright paper51.com

                        Dim cnmy As New SqlConnection(“server=(local);database=lib2004;uid=sa;pwd=”) paper51.com

                        Dim cmd As New SqlCommand paper51.com

                        With cmd

                内容来自www.paper51.com

                           .Connection = cnmy copyright paper51.com

                           .CommandType = CommandType.Text

                内容来自www.paper51.com

                           .CommandText = "select count(*) from manager where Man_id=@Man_idand                 Man_pwd=@Man_pwd" paper51.com

                        End With 内容来自www.paper51.com

                        Dim mMan_id As New SqlParameter("@Man_id",SqlDbType.NVarChar, 50)

                内容来自www.paper51.com

                        Dim mMan_pwd As New SqlParameter("@Man_pwd",SqlDbType.NVarChar, 12) http://www.paper51.com

                        With cmd.Parameters

                内容来自www.paper51.com

                           .Add(mMan_id) paper51.com

                           .Add(mMan_pwd)

                http://www.paper51.com

                        End With 内容来自论文无忧网 www.paper51.com

                       mMan_id.Value = uid

                copyright paper51.com

                       mMan_pwd.Value = pwd

                内容来自www.paper51.com

                        Try 内容来自论文无忧网 www.paper51.com

                           cnmy.Open()

                内容来自www.paper51.com

                           If cmd.ExecuteScalar = 1 Then http://www.paper51.com

                               IsCorrect = True 内容来自论文无忧网 www.paper51.com

                           End If

                内容来自www.paper51.com

                        Catch ex As Exception paper51.com

                           MessageBox.Show("登陆验证时数据库发生错误" + vbCrLf +ex.Message, _

                paper51.com

                           "error", MessageBoxButtons.OK, MessageBoxIcon.Stop) 内容来自论文无忧网 www.paper51.com

                           Return False 内容来自www.paper51.com

                        Finally

                内容来自论文无忧网 www.paper51.com

                           cnmy.Close() 内容来自www.paper51.com

                           If Notcnmy Is NothingThen

                http://www.paper51.com

                               cnmy.Dispose() 内容来自www.paper51.com

                           End If http://www.paper51.com

                        End Try copyright paper51.com

                        Return IsCorrect

                内容来自www.paper51.com

                    EndFunction 内容来自论文无忧网 www.paper51.com

                    现在对这个函数按步骤详细说明。

                paper51.com

------分隔线----------------------------
联系方式