第四周学习笔记(SqlHelper助手详解)
SqlHelper知识点:
SqlHelper 类用于简化你重复的去写那些数据库连接(SQL Connection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。
SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。
在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。
SqlHelper类可以分为两部分,公有方法和私有方法。
公有方法有十三个:这当中每个查询数据库的方法用到了大量的重载,每个方法用到了八个左右的重载。
1.ExecuteNonQuery
此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
2. ExecuteDataset
此方法返回DataSet对象,该对象包含由某一命令返回的结果集。
3.ExecuteReader
此方法用于返回SqlDataReader对象,该对象包含由某一命令返回的结果集。
4.ExecuteScalar
此方法返回一个值。该值始终是该命令返回的第一行的第一列。
5.ExecuteXmlReader
此方法返回 FOR XML 查询的 XML 片段。
6.FillDataset
此方法向DataSet填充数据。
7.UpdateDataset
此方法用于执行向DataSet增、删、改的命令。
8.CreateCommand
此方法用于创建SqlCommand。
除了这些公共方法外,SqlHelper 类还包含一些专用函数,用于管理参数和准备要执行的命令。不管客户端调用什么样的方法实现,所有命令都通过 SqlCommand 对象来执行。在 SqlCommand 对象能够被执行之前,所有参数都必须添加到 Parameters 集合中,并且必须正确设置 Connection、CommandType、CommandText 和 Transaction 属性。SqlHelper 类中的专用函数主要用于提供一种一致的方式,以便向 SQL Server 数据库发出命令,而不考虑客户端应用程序调用的重载方法实现。SqlHelper 类中的专用实用程序函数(私有方法)包括:
- AttachParameters:该函数用于将所有必要的 SqlParameter 对象连接到正在运行的 SqlCommand。
- AssignParameterValues:该函数用于为 SqlParameter 对象赋值。
- PrepareCommand:该函数用于对命令的属性(如连接、事务环境等)进行初始化。
- ExecuteReader:此专用 ExecuteReader 实现用于通过适当的CommanndBehavior打开SqlDataReader对象,以便最有效地管理与阅读器关联的连接的有效期。
思维导图如下:
代码示例如下:
根据我们本周的小组设计的登录注册界面,在后端数据库运用SqlHelper助手修改代码如下:
这样做可以直接实现在后端修改代码便可以实现前端设计的很多功能,而设计者只需要在前端调用传入参数(如数据字符串)等,实现前端代码的简单化。
以实现用户登陆功能的代码为例:
(图 1)
(图 2)
(图 3)
(图 4)
由图1、2可见,我们先是在数据访问层里对各种操作方法进行封装,将其参数化;然后我们便可以直接在前端比如写登录代码时直接调用(如图3、4)数据访问层或业务逻辑层里面已经封装好的数据访问功能直接进行判断,从而大大简化前端代码书写量等等。
运行效果如下图: