一、数据读取器对象SqlDataReader的使用
如何执行有查询结果集的select语句。
1.SqlDataReader对象的作用:当包含select语句的SqlCommad对象在调用ExecuteReader( )方法时,系统会在数据库服务器端生成一个查询结果集,注意,该查询结果集是存储在数据库的,因此在获取这个查询结果集的过程中应用程序与数据库服务器的连接是不能断开的,即SqlConnection对象应该处于Open状态。ExecuteReader( )在生成了查询结果集的同时,还会返回一个SqlDataReader类型的对象给应用程序,此时应用程序就可以使用SqlDataReader对象去数据库服务器端逐行获取数据,因此这是个循环的过程。
2.这种执行select语句的方式适合大数据集的情况。
3.SqlDataReader对象的常用方法:
a)Read( )方法:该方法的作用是读取数据库服务器中查询结果集的当前行记录。读取后记录的指针下移,下次再调用Read( )方法时,将获得下一行数据。
b)Get数据类型名(字段的位置) :这是一系列方法的统一格式,使用这类方法获得读取到的当前记录的指定位置的字段的值。具体Get后面要选择哪个数据类型,要看这个字段的数据类型。
二、数据适配器对象SqlDataAdapter的使用
使用SqlDataReader对象读取查询记录集适合于大型的查询语句结果集的情况。如果查询结果集量较少,使用SqlDataReader并不合适,因为,在SqlDataReader对象读取数据的过程中,应用程序与数据库服务器之间的连接一直打开,会占用数据库服务器的资源,降低了数据库访问的并发性,也增加了数据库服务器的压力。因此,在查询结果集中的记录量比较少的时候可以考虑使用SqlDataAdapter的对象。
1.SqlDataAdapter使用的优点:
a、可以自动打开与关闭连接,不需要人为的调用连接的Open方法
b、将查询结果集放置到应用程序中,不占用数据库服务器的资源与连接。
2.SqlDataAdapter使用的步骤:
a、创建一个SqlCommand命令对象,并为该对象设置好连接、命令字符串、如果命令中包含参数还应该为命令增加参数对象。
b、基于上面的命令对象创建一个SqlDataAdapter类的对象
c、创建一个Dataset类的对象,以备后面使用。Dataset类是数据集类,该类的对象是1个或多个DataTable类对象的集合。而DataTable类对象本质上是一个具有行和列的数据表,是一块内存结构,是临时存储数据用的。不同于数据库中真正的表对象
d、调用SqlDataAdapter类的对象的Fill方法,将执行命令对象的查询语句,并将结果集填充到上面事先定义好的Dataset类对象中。