SqlCommand的ExecuteReader方法

原创 小道  2018-08-28 17:32:01  阅读 418 次 评论 0 条
摘要:

用于执行查询语句,并返回一个DataReader类型的行集合。解释1:将SQL语句发送到指定连接 生成一个SqlDataReader对象解释2:当ExecuteReader()执行后返回一个SqlDataReader对象两种解释实际上都在说明些方法就是给SqlDataReader对象一个可以访问查询到的结果的渠道。 程序执行分析1、首先需要new一个SqlDataReader对象。接收ExecuteReader()执行后返回的SqlDataReader对象。2、SqlDataReade

用于执行查询语句,并返回一个DataReader类型的行集合。

解释1:将SQL语句发送到指定连接 生成一个SqlDataReader对象

解释2:当ExecuteReader()执行后返回一个SqlDataReader对象

两种解释实际上都在说明些方法就是给SqlDataReader对象一个可以访问查询到的结果的渠道。


 程序执行分析

1、首先需要new一个SqlDataReader对象。接收ExecuteReader()执行后返回的SqlDataReader对象。

2、SqlDataReader的HasRows属性可以判断SqlDataReader中是否有(一行或多行)数据,返回bool值,有数据时为true,程序向下执行,开始进入读取数据环节。

3、SqlDataReader的Read方法可以使SqlDataReader前进到下一条记录,同样返回bool值,当下一条无记录返回false,则表示记录读取完毕;当下一条有数据时为true,将读取到的数据(当前的一条记录)暂存在SqlDataReader中。

4、SqlDataReader的一系列get方法可以获取SqlDataReader中不同类型的值,保存到指定的变量中。

注:get方法参数为列数,即第几列。


还有一点很重要,DataReader必须保证SqlConnection处于连接状态。


输出 用户 表中的所以信息:

image.png

            using (SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=false"))
            {
                conn.Open();//打开数据库
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "select * from 用户";//搜索用户表
                    using (SqlDataReader reader = cmd.ExecuteReader())//提供一种从 SQL Server 数据库读取行的只进流的方式。此类不能被继承。
                    {
                        while (reader.Read())//读取获取结果集里面所有行信息(Read: 如果存在多个行,则为 true;否则为 false。)
                        {
                            Console.WriteLine("用户表中的ID:{0},帐号:{1},密码{2}.",reader.GetInt32(0), reader.GetString(1), reader.GetString(2));//输出Get...是输出 括号里面是要输出的列,从0开始。
                              //Console.WriteLine("用户表中的ID:{0},帐号:{1},密码{2}.", reader.GetInt32(reader.GetOrdinal("id")), reader.GetString(reader.GetOrdinal("帐号")), reader.GetString(reader.GetOrdinal("密码")));
                                                     //另一种方法,可以使用 reader.GetOrdinal("id") 获取该列的 序号值。
                        }
                    }
                }
            }

输出结果:

image.png

本文地址:https://www.daobk.com/post/81.html
版权声明:本文为原创文章,版权归 小道 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?