C#利用SqlDataReader读取SQL Server数据表

Posted 老刘讲编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#利用SqlDataReader读取SQL Server数据表相关的知识,希望对你有一定的参考价值。

介绍

可以用SqlDataReader类对象从SQL Server数据库中读取行

DataReader对象允许你以向前的,只读的方式读取数据,有时候DataReader对象也称为消软管游标。DataReader对象采用了一种简化的数据读取方式,但是提高了性能的同时也牺牲了很多特性。例如在DataSet中支持的排序,分页等功能。

属性

属性 介绍
Connection 获取与 SqlConnection 关联的 SqlDataReader。
HasRows 获取一个值,该值指示 SqlDataReader 是否包含一行还是多行。
IsClosed 检索一个布尔值,该值指示是否已关闭指定的 SqlDataReader 实例。

方法

方法 介绍
Close() 关闭 DbDataReader 对象。
Read() 让 SqlDataReader 前进到下一条记录。

典型事例

我们在SQL中新建一个表:
在这里插入图片描述
在这里插入图片描述
新建一个C#窗体应用插入一个listview
属性View设为Details
在这里插入图片描述

添加命名空间:

using System.Data.SqlClient;

窗体加载事件中输入以下代码:

string constr = "Server=数据名;uid=用户名;pwd=密码;DataBase=Management";
            // 建立SqlConnection对象
            SqlConnection con = new SqlConnection(constr);
            con.Open();
            //执行con对象的函数,返回一个SqlCommand类型的对象
            SqlCommand cmd = con.CreateCommand();
            //把输入的数据拼接成sql语句,并交给cmd对象
            cmd.CommandText = "select*from tb_User";
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                //构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
                ListViewItem lt = new ListViewItem();
                //将数据库数据转变成ListView类型的一行数据              
                lt.Text = dr["UserName"].ToString().Trim();
                lt.SubItems.Add(dr["Userpwd"].ToString().Trim());
                lt.SubItems.Add(dr["Note"].ToString().Trim());
                listView1.Items.Add(lt);                
            }
            dr.Close();
            con.Close();

运行结果:
在这里插入图片描述

注释

若要创建 SqlDataReader ,必须调用对象的 ExecuteReader 方法 SqlCommand ,而不是直接使用构造函数。
如果正在 SqlDataReader 使用,则关联的 SqlConnection 忙于提供服务 SqlDataReader ,并且除关闭外,不能在其他操作上执行任何其他操作 SqlConnection 。 在调用的方法之前,会出现这种情况 Close SqlDataReader 。 例如,在调用之后,才能检索输出参数 Close 。

以上是关于C#利用SqlDataReader读取SQL Server数据表的主要内容,如果未能解决你的问题,请参考以下文章

SqlDataReader 和 T-SQL:在使用来自 C# 的“异步”调用时使用“try...catch”和“throw”时不会传播异常

C#:使用 SqlDataReader 在图表上显示 SQL 查询

在 C# 中将 SQL Datareader 转换为数据集

C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用

C# 使用 SqlDataReader 从 SQL Server 检索数据到主详细信息列表

SqlDataReader C#,SQL Server 2005,VS 2008