SqlCeDataReader 類別
提供自資料來源讀取資料列之順向 (Forward-Only) 資料流的方法。這個類別無法被繼承。
繼承階層
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 方法,而不是直接使用建構函式 (Constructor)。
當 SqlCeDataReader 在使用中時,相關聯的 SqlCeConnection 會忙於服務 SqlCeDataReader。在這個狀態下,您可以在同一個連接中建立多個讀取器 (Reader)。
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 中為 Shared) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。