SqlDataReader C#数据库查询结果数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010673842/article/details/79163259

对于reader的处理

        // 摘要: 
        //     关闭 System.Data.SqlClient.SqlDataReader 对象。
        public override void Close();

        //
        // 摘要: 
        //     检索一个布尔值,该值指示是否已关闭指定的 System.Data.SqlClient.SqlDataReader 实例。
        //
        // 返回结果: 
        //     如果指定的 System.Data.SqlClient.SqlDataReader 实例已关闭,则为 true;否则为 false。
        public override bool IsClosed { get; }
对查询记录的处理
        //
        // 摘要: 
        //     获取执行 Transact-SQL 语句所更改、插入或删除的行数。
        //
        // 返回结果: 
        //     已更改、插入或删除的行数;如果没有任何行受到影响或语句失败,则为 0;-1 表示 SELECT 语句。
        public override int RecordsAffected { get; }

        //
        // 摘要: 查询
        //     获取一个值,该值指示 System.Data.SqlClient.SqlDataReader 是否包含一行或多行。
        //
        // 返回结果: 
        //     如果 System.Data.SqlClient.SqlDataReader 包含一行或多行,则为 true;否则为 false。
        public override bool HasRows { get; }

        //
        // 摘要: 
        //     当读取批处理 Transact-SQL 语句的结果时,使数据读取器前进到下一个结果。
        //
        // 返回结果: 
        //     如果存在多个结果集,则为 true;否则为 false。
        public override bool NextResult();

对行的处理

        //
        // 摘要: 
        //     使 System.Data.SqlClient.SqlDataReader 前进到下一条记录。
        //
        // 返回结果: 
        //     如果存在多个行,则为 true;否则为 false。
        //
        // 异常: 
        //   System.Data.SqlClient.SqlException:
        //     行命令文本时,SQL Server 返回了错误。
        public override bool Read();


        //
        // 摘要: 
        //     获取当前行中的列数。
        //
        // 返回结果: 
        //     如果未放在有效的记录集中,则为 0;否则为当前行中的列数。 默认值为 -1。
        //
        // 异常: 
        //   System.NotSupportedException:
        //     没有对 SQL Server 实例的当前连接。
        public override int FieldCount { get; }

对行中列的处理

        //
        // 摘要: 
        //     获取一个值,该值指示列中是否包含不存在的或缺少的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     如果指定的列值与 System.DBNull 等效,则为 true;否则为 false。
        public override bool IsDBNull(int i);


        //
        // 摘要: 
        //     获取一个表示指定列的数据类型的字符串。
        //
        // 参数: 
        //   i:
        //     要查找的列的从零开始的序号位置。
        //
        // 返回结果: 
        //     表示指定列的数据类型的字符串。
        public override string GetDataTypeName(int i);


        //
        // 摘要: 
        //     获取指定列的名称。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的名称。
        public override string GetName(int i);


        //
        // 摘要: 
        //     获取以本机格式表示的指定列的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     对于 null 数据库列,此方法返回 System.DBNull。
        public override object GetValue(int i);

对GetValue函数的分解处理


 //
        // 摘要: 
        //     获取指定列的布尔值形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override bool GetBoolean(int i);
        //
        // 摘要: 
        //     获取指定列的字节形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的字节形式的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override byte GetByte(int i);
        //
        // 摘要: 
        //     从指定的列偏移量将字节流读入缓冲区,并将其作为从给定的缓冲区偏移量开始的数组。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        //   dataIndex:
        //     字段中的索引,从其开始读取操作。
        //
        //   buffer:
        //     要将字节流读入的缓冲区。
        //
        //   bufferIndex:
        //     buffer 中写入操作开始位置的索引。
        //
        //   length:
        //     要复制到缓冲区中的最大长度。
        //
        // 返回结果: 
        //     读取的实际字节数。
        
        public override char GetChar(int i);


        //
        // 摘要: 
        //     获取指定列的 System.DateTime 对象形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override DateTime GetDateTime(int i);

        //
        // 摘要: 
        //     获取指定列的 System.Decimal 对象形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override decimal GetDecimal(int i);
        //
        // 摘要: 
        //     获取指定列的双精度浮点数形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override double GetDouble(int i);


        
        
        //
        // 摘要: 
        //     获取指定列的单精度浮点数形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override float GetFloat(int i);

        //
        // 摘要: 
        //     获取指定列的 16 位有符号整数形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override short GetInt16(int i);
        //
        // 摘要: 
        //     获取指定列的 32 位有符号整数形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override int GetInt32(int i);
        //
        // 摘要: 
        //     获取指定列的 64 位有符号整数形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override long GetInt64(int i);

        //
        // 摘要: 
        //     检索作为 System.IO.Stream 的二进制、图像、varbinary、UDT 和变量数据类型。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     流对象。
        //
        // 异常: 
        //   System.InvalidOperationException:
        //     连接中断或在数据检索期间已关闭。 数据检索期间System.Data.SqlClient.SqlDataReader 处于关闭状态。 没有可读取的就绪数据
        //     (例如,第一个 System.Data.SqlClient.SqlDataReader.Read() 未被调用或返回错误)。 按顺序模式尝试读取上一步骤中读取的列。
        //     没有正在进行的异步操作。 以顺序模式运行时,这适用于所有 Get* 方法,读取流时也可对其进行调用。
        //
        //   System.IndexOutOfRangeException:
        //     尝试读取不存在的列。
        //
        //   System.InvalidCastException:
        //     返回的类型不属于以下类型之一: binary image varbinary UDT
        public override Stream GetStream(int i);
        //
        // 摘要: 
        //     获取指定列的字符串形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public override string GetString(int i);
        //
        // 摘要: 
        //     检索作为 System.IO.TextReader 的 Char、 NChar、 NText、 NVarChar、 text、 varChar 和
        //     Variant data types。
        //
        // 参数: 
        //   i:
        //     要检索的列。
        //
        // 返回结果: 
        //     返回的对象。
        //
        // 异常: 
        //   System.InvalidOperationException:
        //     连接中断或在数据检索期间已关闭。 数据检索期间System.Data.SqlClient.SqlDataReader 处于关闭状态。 没有可读取的就绪数据
        //     (例如,第一个 System.Data.SqlClient.SqlDataReader.Read() 未被调用或返回错误)。 按顺序模式尝试读取上一步骤中读取的列。
        //     没有正在进行的异步操作。 以顺序模式运行时,这适用于所有 Get* 方法,读取流时也可对其进行调用。
        //
        //   System.IndexOutOfRangeException:
        //     尝试读取不存在的列。
        //
        //   System.InvalidCastException:
        //     返回的类型不属于以下类型之一: char nchar ntext nvarchar text varchar
        public override TextReader GetTextReader(int i);
        //
        // 摘要: 
        //     检索指定列的 System.TimeSpan 对象形式的值。
        //
        // 参数: 
        //   i:
        //     从零开始的列序号。
        //
        // 返回结果: 
        //     指定列的值。
        //
        // 异常: 
        //   System.InvalidCastException:
        //     指定的强制转换无效。
        public virtual TimeSpan GetTimeSpan(int i);
以上函数均来自官方的说明文档,去除了不常用和看不懂的.可以用来实现自定义的数据库返回处理程序.








猜你喜欢

转载自blog.csdn.net/u010673842/article/details/79163259