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)

上層

方法

  名稱 說明
公用方法 Close 關閉 SqlCeDataReader 物件。 (覆寫 DbDataReader.Close()。)
公用方法 CreateObjRef (繼承自 MarshalByRefObject)
公用方法 Dispose() 基礎結構。釋放此 SqlCeDataReader 所耗用的資源。
受保護的方法 Dispose(Boolean) 釋放這個 SqlCeDataReader 所使用的 Unmanaged 資源,並且選擇性地釋放 Managed 資源。 (覆寫 DbDataReader.Dispose(Boolean)。)
公用方法 Equals (繼承自 Object)
受保護的方法 Finalize 釋放 Unmanaged 資源並執行其他清除作業後,記憶體回收才能重新回收 SqlCeDataReader。 (覆寫 Object.Finalize()。)
公用方法 GetBoolean 取得指定之資料行的值做為布林值 (Boolean)。 (覆寫 DbDataReader.GetBoolean(Int32)。)
公用方法 GetByte 取得指定資料行的值做為位元組。 (覆寫 DbDataReader.GetByte(Int32)。)
公用方法 GetBytes 從指定的資料行位移 (Offset) 將位元組資料流讀入做為陣列的緩衝區,開始於指定的緩衝區位移。 (覆寫 DbDataReader.GetBytes(Int32, Int64, array<Byte[], Int32, Int32)。)
公用方法 GetChar .NET Compact Framework Data Provider for SQL Server Compact 中不支援。 (覆寫 DbDataReader.GetChar(Int32)。)
公用方法 GetChars 從指定的資料行位移將字元的資料流讀入做為陣列的緩衝區,開始於指定的緩衝區位移。 (覆寫 DbDataReader.GetChars(Int32, Int64, array<Char[], Int32, Int32)。)
公用方法 GetData (繼承自 DbDataReader)
公用方法 GetDataTypeName 取得來源資料類型的名稱。 (覆寫 DbDataReader.GetDataTypeName(Int32)。)
公用方法 GetDateTime 取得指定之資料行的值做為 DateTime 物件。 (覆寫 DbDataReader.GetDateTime(Int32)。)
受保護的方法 GetDbDataReader (繼承自 DbDataReader)
公用方法 GetDecimal 取得指定之資料行的值做為 Decimal 物件。 (覆寫 DbDataReader.GetDecimal(Int32)。)
公用方法 GetDouble 取得指定資料行的值做為雙精確度浮點數。 (覆寫 DbDataReader.GetDouble(Int32)。)
公用方法 GetEnumerator 基礎結構。 (覆寫 DbDataReader.GetEnumerator()。)
公用方法 GetFieldType 取得 Type,即是物件的資料類型。 (覆寫 DbDataReader.GetFieldType(Int32)。)
公用方法 GetFloat 取得指定資料行的值做為單精確度浮點數。 (覆寫 DbDataReader.GetFloat(Int32)。)
公用方法 GetGuid 取得指定資料行的值做為全域唯一識別碼 (GUID)。 (覆寫 DbDataReader.GetGuid(Int32)。)
公用方法 GetHashCode (繼承自 Object)
公用方法 GetInt16 取得指定資料行的值做為 16 位元帶正負號的整數。 (覆寫 DbDataReader.GetInt16(Int32)。)
公用方法 GetInt32 取得指定資料行的值做為 32 位元帶正負號的整數。 (覆寫 DbDataReader.GetInt32(Int32)。)
公用方法 GetInt64 取得指定資料行的值做為 64 位元帶正負號的整數。 (覆寫 DbDataReader.GetInt64(Int32)。)
公用方法 GetLifetimeService (繼承自 MarshalByRefObject)
公用方法 GetName 取得指定之資料行的名稱。 (覆寫 DbDataReader.GetName(Int32)。)
公用方法 GetOrdinal 提供資料行的名稱,取得資料行序數。 (覆寫 DbDataReader.GetOrdinal(String)。)
公用方法 GetProviderSpecificFieldType 取得 Object,其為基礎提供者專屬欄位類型的表示。 (覆寫 DbDataReader.GetProviderSpecificFieldType(Int32)。)
公用方法 GetProviderSpecificValue (繼承自 DbDataReader)
公用方法 GetProviderSpecificValues (繼承自 DbDataReader)
公用方法 GetSchemaTable 傳回 DataTable,以描述 SqlCeDataReader 的資料行中繼資料。 (覆寫 DbDataReader.GetSchemaTable()。)
公用方法 GetSqlBinary 取得指定之資料行的值做為 SqlBinary
公用方法 GetSqlBoolean 取得指定之資料行的值做為 SqlBoolean
公用方法 GetSqlByte 取得指定之資料行的值做為 SqlByte
公用方法 GetSqlDateTime 取得指定之資料行的值做為 SqlDateTime
公用方法 GetSqlDecimal 取得指定之資料行的值做為 SqlDecimal
公用方法 GetSqlDouble 取得指定之資料行的值做為 SqlDouble
公用方法 GetSqlGuid 取得指定之資料行的值做為 SqlGuid
公用方法 GetSqlInt16 取得指定之資料行的值做為 SqlInt16
公用方法 GetSqlInt32 取得指定之資料行的值做為 SqlInt32
公用方法 GetSqlInt64 取得指定之資料行的值做為 SqlInt64
公用方法 GetSqlMoney 取得指定之資料行的值做為 SqlMoney
公用方法 GetSqlSingle 取得指定之資料行的值做為 SqlSingle
公用方法 GetSqlString 取得指定之資料行的值做為 SqlString
公用方法 GetString 取得指定的資料行值做為字串。 (覆寫 DbDataReader.GetString(Int32)。)
公用方法 GetType (繼承自 Object)
公用方法 GetValue 取得格式為原生之指定序數的資料行值。 (覆寫 DbDataReader.GetValue(Int32)。)
公用方法 GetValues 取得目前資料列中的所有屬性資料行。 (覆寫 DbDataReader.GetValues(array<Object[])。)
公用方法 InitializeLifetimeService (繼承自 MarshalByRefObject)
受保護的方法 IsCommandBehavior 決定指定的 CommandBehavior 是否與這個 SqlCeDataReader 的行為相符。
公用方法 IsDBNull 取得值,表示資料行是否包含不存在或遺漏的值。 (覆寫 DbDataReader.IsDBNull(Int32)。)
受保護的方法 MemberwiseClone() (繼承自 Object)
受保護的方法 MemberwiseClone(Boolean) (繼承自 MarshalByRefObject)
公用方法 NextResult .NET Compact Framework Data Provider for SQL Server Compact 中不支援。 (覆寫 DbDataReader.NextResult()。)
受保護的方法 OnMove 基礎結構。
公用方法 Read 將 SqlCeDataReader 向前移到下一個資料錄。 (覆寫 DbDataReader.Read()。)
公用方法 Seek 將 SqlCeDataReader 放到具有符合指定參數之索引值的資料錄上。
公用方法 ToString (繼承自 Object)

上層

明確 繼承 實作

  名稱 說明
明確介面實作私用方法 IDataRecord.GetData (繼承自 DbDataReader)

上層

備註

若要建立 SqlCeDataReader,則必須呼叫 SqlCeCommand 物件的 ExecuteReader 方法,而不是直接使用建構函式 (Constructor)。

當 SqlCeDataReader 在使用中時,相關聯的 SqlCeConnection 會忙於服務 SqlCeDataReader。在這個狀態下,您可以在同一個連接中建立多個讀取器 (Reader)。

SqlCeDataReader 的使用者可能看得到另一個處理序或執行緒在讀取資料時對結果集所做的變更;但是,確切的行為需視這些事件發生的時間而定。

在 SqlCeDataReader 關閉後,IsClosedRecordsAffected 是唯一可以呼叫的屬性。雖然您可以在 SqlCeDataReader 存在時隨時存取 RecordsAffected 屬性,但在傳回 RecordsAffected 的值之前請一定要呼叫 Close,以確保傳回正確的值。

範例

下列範例會建立 SqlCeConnectionSqlCeCommand 和 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) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。

請參閱

參考

System.Data.SqlServerCe 命名空間