SqlCeDataReader 类
提供从数据源读取数据行的只进流的方法。无法继承此类。
继承层次结构
System.Object
System.MarshalByRefObject
System.Data.Common.DbDataReader
System.Data.SqlServerCe.SqlCeDataReader
System.Data.SqlServerCe.SqlCeResultSet
命名空间: System.Data.SqlServerCe
程序集: System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)
语法
声明
Public Class SqlCeDataReader _
Inherits DbDataReader
用法
Dim instance As SqlCeDataReader
public class SqlCeDataReader : DbDataReader
public ref class SqlCeDataReader : public DbDataReader
type SqlCeDataReader =
class
inherit DbDataReader
end
public class SqlCeDataReader extends DbDataReader
SqlCeDataReader 类型公开以下成员。
属性
名称 | 说明 | |
---|---|---|
Depth | 获取一个值,该值指示当前行的嵌套深度。 (覆盖 DbDataReader.Depth。) | |
FieldCount | 获取查询表的 SELECT 子句中的列数。 (覆盖 DbDataReader.FieldCount。) | |
HasRows | 获取一个值,该值指示 SqlCeDataReader 是否包含一行或多行 (覆盖 DbDataReader.HasRows。) | |
HiddenFieldCount | 基础结构。 | |
IsClosed | 指示是否可关闭数据读取器。 (覆盖 DbDataReader.IsClosed。) | |
Item[Int32] | 在给定列序号的情况下,获取指定列的以本机格式表示的值。 (覆盖 DbDataReader.Item[Int32]。) | |
Item[String] | 在给定列名称的情况下,获取指定列的以本机格式表示的值。 (覆盖 DbDataReader.Item[String]。) | |
RecordsAffected | 通过执行 SQL 语句获取更改、插入或删除的行数。 (覆盖 DbDataReader.RecordsAffected。) | |
VisibleFieldCount | (继承自 DbDataReader) |
页首
方法
页首
显式接口实现
名称 | 说明 | |
---|---|---|
IDataRecord.GetData | (继承自 DbDataReader) |
页首
注释
若要创建 SqlCeDataReader,必须调用 SqlCeCommand 对象的 ExecuteReader 方法,而不直接使用构造函数。
当 SqlCeDataReader 处于使用状态时,关联的 SqlCeConnection 正忙于为 SqlCeDataReader 服务。在此状态下,可以在同一连接中创建多个读取器。
在读取数据时,SqlCeDataReader 的用户可以看到其他进程或线程对结果集所做的更改,具体情况取决于更改发生的时间。
当 SqlCeDataReader 关闭后,只能调用 IsClosed 属性和 RecordsAffected 属性。尽管当 SqlCeDataReader 存在时,可随时访问 RecordsAffected 属性,但是,请在返回 RecordsAffected 的值之前先调用 Close,以确保得到精确的返回值。
示例
下面的示例创建一个 SqlCeConnection、一个 SqlCeCommand 和一个 SqlCeDataReader。该示例读取全部数据并将数据写到控制台,然后关闭 SqlCeDataReader 和 SqlCeConnection。
Dim conn As SqlCeConnection = Nothing
Dim cmd As SqlCeCommand = Nothing
Dim rdr As SqlCeDataReader = Nothing
Try
' Open the connection and create a SQL command
'
conn = New SqlCeConnection("Data Source = AdventureWorks.sdf")
conn.Open()
cmd = New SqlCeCommand("SELECT * FROM DimEmployee", conn)
rdr = cmd.ExecuteReader()
' Iterate through the results
'
While rdr.Read()
Dim employeeID As Integer = rdr.GetInt32(0) ' or: rdr["EmployeeKey"];
Dim lastName As String = rdr.GetString(5) ' or: rdr["FirstName"];
End While
' Always dispose data readers and commands as soon as practicable
'
rdr.Close()
cmd.Dispose()
Finally
' Close the connection when no longer needed
'
conn.Close()
End Try
SqlCeConnection conn = null;
SqlCeCommand cmd = null;
SqlCeDataReader rdr = null;
try
{
// Open the connection and create a SQL command
//
conn = new SqlCeConnection("Data Source = AdventureWorks.sdf");
conn.Open();
cmd = new SqlCeCommand("SELECT * FROM DimEmployee", conn);
rdr = cmd.ExecuteReader();
// Iterate through the results
//
while (rdr.Read())
{
int employeeID = rdr.GetInt32(0); // or: rdr["EmployeeKey"];
string lastName = rdr.GetString(5); // or: rdr["FirstName"];
}
// Always dispose data readers and commands as soon as practicable
//
rdr.Close();
cmd.Dispose();
}
finally
{
// Close the connection when no longer needed
//
conn.Close();
}
线程安全
此类型的任何公共静态(在 Microsoft Visual Basic 中为共享)成员是线程安全的。不保证所有实例成员都对于线程安全的。