本文概述
此类用于从SQL Server数据库读取数据。它从SQL Server数据库读取仅前向行流中的数据。它是密封类,因此无法继承。它继承了DbDataReader类并实现IDisposable接口。
SqlDataReader签名
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
SqlDataReader属性
属性 | 描述 |
---|---|
Connection | 它用于获取与SqlDataReader关联的SqlConnection。 |
Depth | 它用于获取一个值, 该值指示当前行的嵌套深度。 |
FieldCount | 它用于获取当前行中的列数。 |
HasRows | 它用于获取一个值, 该值指示SqlDataReader是否包含一个或多个行。 |
IsClosed | 它用于检索一个布尔值, 该布尔值指示指定的SqlDataReader实例是否已关闭。 |
Item[String] | 给定列名称时, 它用于以其本机格式获取指定列的值。 |
Item[Int32] | 给定列序号时, 它用于以其本机格式获取指定列的值。 |
RecordsAffected | 它用于获取通过执行Transact-SQL语句更改, 插入或删除的行数。 |
VisibleFieldCount | 它用于获取SqlDataReader中未隐藏的字段数。 |
方法
方法 | 描述 |
---|---|
Close() | 它用于关闭SqlDataReader对象。 |
GetBoolean(Int32) | 它用于获取指定列的布尔值。 |
GetByte(Int32) | 它用于获取指定列的值作为字节。 |
GetChar(Int32) | 它用于获取指定列的值作为单个字符。 |
GetDateTime(Int32) | 它用于获取指定列的值作为DateTime对象。 |
GetDecimal(Int32) | 它用于获取指定列的值作为Decimal对象。 |
GetDouble(Int32) | 它用于获取指定列的值作为双精度浮点数。 |
GetFloat(Int32) | 它用于获取指定列的值作为单精度浮点数。 |
GetName(Int32) | 它用于获取指定列的名称。 |
GetSchemaTable() | 它用于获取描述SqlDataReader列元数据的DataTable。 |
GetValue(Int32) | 它用于以其本机格式获取指定列的值。 |
GetValues(Object[]) | 它用于用当前行的列值填充对象数组。 |
NextResult() | 读取SQL语句的结果时, 它用于获取下一个结果。 |
Read() | 它用于从SQL Server数据库读取记录。 |
若要创建SqlDataReader实例,我们必须调用SqlCommand对象的ExecuteReader方法。
例
在以下程序中,我们使用SqlDataReader从SQL Server获取数据。 C
// Program.cs
using System;
using System.Data.SqlClient;
namespace AdoNetConsoleApplication
{
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", con);
// Opening Connection
con.Open();
// Executing the SQL query
SqlDataReader sdr = cm.ExecuteReader();
while (sdr.Read())
{
Console.WriteLine(sdr["name"]+" "+ sdr["email"]);
}
}
catch (Exception e)
{
Console.WriteLine("OOPs, something went wrong." + e);
}
// Closing the connection
finally
{
con.Close();
}
}
}
}
输出:
通过组合Ctrl F5执行此程序,它将产生以下输出。
评论前必须登录!
注册