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