ADO.Net SqlDataReader类
ADO.Net的SqlDataReader
类用于从SQL Server数据库读取数据。它从SQL Server数据库读取仅向前行的数据流中的数据。它是封闭的类,所以不能被继承。它继承了DbDataReader
类并实现了IDisposable
接口。
SqlDataReader的签名
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
SqlDataReader类的属性
编号 | 属性 | 描述 |
---|---|---|
1 | Connection |
它用于获取与SqlDataReader 关联的SqlConnection 。 |
2 | Depth |
它被用来获取一个表示当前行的嵌套深度的值。 |
3 | FieldCount |
它用于获取当前行中的列数。 |
4 | HasRows |
它用于获取一个值,该值指示SqlDataReader 是否包含一行或多行。 |
5 | IsClosed |
它用于检索布尔值,该值指示指定的SqlDataReader 实例是否已关闭。 |
6 | Item[String] |
它用于以给定列名称的原始格式获取指定列的值。 |
7 | Item[Int32] |
它用于以给定列序号的原始格式获取指定列的值。 |
8 | RecordsAffected |
它用于通过执行Transact-SQL语句来获取更改,插入或删除的行数。 |
9 | VisibleFieldCount |
它用于获取SqlDataReader 中未隐藏的字段数。 |
SqlDataReader类的属性
编号 | 属性 | 描述 |
---|---|---|
1 | Close() |
它用于关闭SqlDataReader 对象。 |
2 | GetBoolean(Int32) |
它用于以布尔值的形式获取指定列的值。 |
3 | GetByte(Int32) |
它用于获取指定列的值作为一个字节。 |
4 | GetChar(Int32) |
它用于获取指定列的值作为单个字符。 |
5 | GetDateTime(Int32) |
它用于获取指定列的值作为DateTime 对象。 |
6 | GetDecimal(Int32) |
它用于获取指定列的值作为Decimal 对象。 |
7 | GetDouble(Int32) |
它用于获取指定列的值作为双精度浮点数。 |
8 | GetFloat(Int32) |
它用于获取指定列的值作为单精度浮点数。 |
9 | GetName(Int32) |
它用于获取指定列的名称。 |
10 | GetSchemaTable() |
它用于获取描述SqlDataReader 的列元数据的DataTable 对象。 |
11 | GetValue(Int32) |
它用于以本机格式获取指定列的值。 |
12 | GetValues(Object[]) |
它用于使用当前行的列值填充对象数组。 |
13 | NextResult() |
当读取SQL语句的结果时,它用来获得下一个结果。 |
14 | Read() |
它用于从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(); } } } }
执行上面示例代码,得到以下结果 -
下一篇:ADO.Net DataSet类
关注微信小程序
扫描二维码
程序员编程王