SqlCommand的ExecuteReader方法
用于执行查询语句,并返回一个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处于连接状态。
输出 用户 表中的所以信息:
            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") 获取该列的 序号值。
                        }
                    }
                }
            }输出结果:





 
                        ![拓源纯净主题tpure 修改 站长简介 [图标]](https://www.daobk.com/zb_users/cache/thumbs/c5b8ebcad49f36c4c34c34c798657675-210-147-1.jpg) 
                         
                         
                        