ADO.Net SqlDataReader类

ADO.Net的SqlDataReader类用于从SQL Server数据库读取数据。它从SQL Server数据库读取仅前面行的数据流中的数据。它是封闭的类,所以不能被继承。它继承了DbDataReader类并实现了IDisposable接口。

SqlDataReader的签名


public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
C#

SqlDataReader类的属性

编号属性描述
1Connection它用于获取与SqlDataReader关联的SqlConnection
2Depth它的作用是获取一个表示当前行的凹陷深度的值。
3FieldCount它用于获取当前行中的列数。
4HasRows它用于获取一个值,该值指示SqlDataReader是否包含一对兄弟行。
5IsClosed它用于搜索布尔值,该值指示的SqlDataReader实例是否已关闭。
6Item[String]它用于以给定列名称的原始格式获取指定列的值。
7Item[Int32]它用于以给定列序号的原始格式获取指定列的值。
8RecordsAffected它用于通过执行Transact-SQL语句来获取更改、插入或删除的行数。
9VisibleFieldCount它用于获取SqlDataReader中未隐藏的字段数。

SqlDataReader类的属性

编号属性描述
1Close()它用于关闭SqlDataReader对象。
2GetBoolean(Int32)它用于以布尔值的形式获取指定列的值。
3GetByte(Int32)它用于获取指定列的值一个字节。
4GetChar(Int32)它用于获取指定列的值作为单个字符。
5GetDateTime(Int32)它用于获取指定列的值作为DateTime对象。
6GetDecimal(Int32)它用于获取指定列的值作为Decimal对象。
7GetDouble(Int32)它用于获取指定列的值作为双精度浮点数。
8GetFloat(Int32)它用于获取指定列的值作为单精度浮点数。
9GetName(Int32)它用于获取指定列的名称。
10GetSchemaTable()它用于获取描述SqlDataReader的列元数据的DataTable对象。
11GetValue(Int32)它用于以本机格式获取指定列的值。
12GetValues(Object[])它用于使用当前行的列值填充对象。
13NextResult()当读取SQL语句的结果时,它用于获得下一个结果。
14Read()它用于从SQL Server数据库中读取记录。

要创建一个SqlDataReader实例,则必须调用SqlCommand对象的ExecuteReader方法。

效果

在下面的程序中,使用SqlDataReader从SQL Server获取数据。创建一个C#控制台应用项目:AdoNetSqlDataReader,如下所示 -

C#代码实现如下 -


using System;
using System.Data.SqlClient;

namespace AdoNetSqlDataReader
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().GetData();
        }
        public void GetData()
        {
            SqlConnection con = null;
            try
            {
                // Creating Connection  
                con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
                // writing sql query  
                SqlCommand cm = new SqlCommand("select * from student_info", con);
                // Opening Connection  
                con.Open();
                Console.WriteLine("当前 student_info 表中存有以下学生信息:" );
                // Executing the SQL query  
                SqlDataReader sdr = cm.ExecuteReader();
                while (sdr.Read())
                {
                    Console.WriteLine("学生编号:" + sdr["id"] +" 学生姓名:" + sdr["name"] + " " + sdr["email"]);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("OOPs, something went wrong." + e);
            }
            // Closing the connection  
            finally
            {
                con.Close();
            }
        }
    }
}
C#

执行上面示例代码,得到以下结果 -

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧浩海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值