文章教程

9.6SqlDataReader对象

8/31/2020 9:19:23 PM 人评论 次浏览

9.6 SqlDataReader对象

ADO.NET中提供了SqlDataReader对象,该对象用于从数据库中读取数据。在使用SqlDataReader对象读取数据时,必须要与数据库保持连接,断开连接后不能再读取数据。

9.6.1 创建SqlDataReader对象

SqlDataReader对象读取数据库表中的数据时,数据连接必须处于打开状态,而且每次从查询结果中读取一行数据到内存中。使用SqlDataReader对象时,需要注意以下几点。

(1)SqlDataReader只能读取数据,不能对数据库执行任何修改或者插入操作。

(2)SqlDataReader只能向前读取数据,不能回头读取已经被访问的数据。

(3)SqlDataReader对象直接把数据传递到其他对象或窗体页面。

直接通过SqlCommand对象的ExecuteReader()方法可以创建SqlDataReader对象,代码如下。

    SqlDataReader dr = command.ExecuteReader();

9.6.2 SqlDataReader对象的属性

调用SqlDataReader对象的属性可以获取当前行中的列数、当前行的嵌套深度,如表9-8所示的对SqlDataReader对象的常用属性的说明。

表9-8 SqlDataReader对象的常用属性

【范例9】

HasRows属性返回一个布尔值,使用代码如下。

    if (dr.HasRows) {
        //如果包含行
    }

9.6.3 SqlDataReader对象的方法

SqlDataReader对象还提供了一系列的方法,常用方法的说明如下。

(1)Close()方法:关闭SqlDataReader对象,释放资源。

(2)Read()方法:返回一个布尔值,使用SqlDataReader指针前进到下一条记录,如果前进成功则返回true,否则返回false。

(3)isDBNull()方法:获取一个值,该值指示列中是否包含不存在的或缺少的值。

【范例10】

通过Read()方法读取数据,在读取数据的过程中,并不能保证读取的字段中都有数据,因此,可以通过DBNull对象的Value属性判断。代码如下。

    if(read["st_brithday"] == DBNull.Value) {
        //数据为空时的代码
    }

教程类别