SqlCeResultSet 类

继承层次结构

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 SqlCeResultSet _
    Inherits SqlCeDataReader _
    Implements IEnumerable, IListSource
用法
Dim instance As SqlCeResultSet
public class SqlCeResultSet : SqlCeDataReader, 
    IEnumerable, IListSource
public ref class SqlCeResultSet : public SqlCeDataReader, 
    IEnumerable, IListSource
type SqlCeResultSet =  
    class
        inherit SqlCeDataReader
        interface IEnumerable
        interface IListSource
    end
public class SqlCeResultSet extends SqlCeDataReader implements IEnumerable, IListSource

SqlCeResultSet 类型公开以下成员。

构造函数

  名称 说明
受保护方法 SqlCeResultSet 安全关键。不要使用。若要创建一个 SqlCeResultSet,您必须调用 SqlCeCommand 的 ExecuteResultSet(ResultSetOptions) 方法。

页首

属性

  名称 说明
受保护属性 ContainsListCollection 基础结构。
公共属性 Depth 获取一个值,该值指示当前行的嵌套深度。 (继承自 SqlCeDataReader
公共属性 FieldCount 获取查询表的 SELECT 子句中的列数。 (继承自 SqlCeDataReader
公共属性 HasRows 获取一个值,该值指示 SqlCeDataReader 是否包含一行或多行 (继承自 SqlCeDataReader
公共属性 HiddenFieldCount 基础结构。 (继承自 SqlCeDataReader
公共属性 IsClosed 指示是否可关闭数据读取器。 (继承自 SqlCeDataReader
公共属性 Item[Int32] 作为 SqlCeResultSet 的索引器。 (覆盖 SqlCeDataReader.Item[Int32]。)
公共属性 Item[String] 作为 SqlCeResultSet 的索引器。 (覆盖 SqlCeDataReader.Item[String]。)
公共属性 RecordsAffected 通过执行 SQL 语句获取更改、插入或删除的行数。 (继承自 SqlCeDataReader
公共属性 ResultSetView 在将一个 SqlCeResultSet 数据绑定到一个控件时使用。
公共属性 Scrollable 确定 SqlCeResultSet 是否可滚动。
公共属性 Sensitivity 确定 SqlCeResultSet 的敏感度。
公共属性 Updatable 确定是否可修改 SqlCeResultSet 中的值。
公共属性 VisibleFieldCount (继承自 DbDataReader

页首

方法

  名称 说明
公共方法 Close 关闭 SqlCeDataReader 对象。 (继承自 SqlCeDataReader
公共方法 CreateObjRef (继承自 MarshalByRefObject
公共方法 CreateRecord 在服务器上创建新的一行并返回一个 SqlCeUpdatableRecord 对象。
公共方法 Delete 从服务器上的数据源中删除当前记录。
公共方法 Dispose() 基础结构。释放此 SqlCeDataReader 使用的资源。 (继承自 SqlCeDataReader
受保护方法 Dispose(Boolean) 释放此 SqlCeDataReader 类使用的非托管资源,并还可以选择释放托管资源。 (继承自 SqlCeDataReader
公共方法 Equals (继承自 Object
受保护方法 Finalize 在通过垃圾回收将 SqlCeDataReader 回收之前,释放非托管资源并执行其他清理操作。 (继承自 SqlCeDataReader
公共方法 GetBoolean 以布尔值的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetBoolean(Int32)。)
公共方法 GetByte 以字节形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetByte(Int32)。)
公共方法 GetBytes 从指定字段中的指定位置开始,将一定长度的字节复制到缓冲区中。 (覆盖 SqlCeDataReader.GetBytes(Int32, Int64, array<Byte[], Int32, Int32)。)
公共方法 GetChar 在 SQL Server Compact 的 .NET Compact Framework 数据提供程序中不受支持。 (继承自 SqlCeDataReader
公共方法 GetChars 从指定字段中的指定位置开始,将一定长度的字符复制到缓冲区中。 (覆盖 SqlCeDataReader.GetChars(Int32, Int64, array<Char[], Int32, Int32)。)
公共方法 GetData (继承自 DbDataReader
公共方法 GetDataTypeName 获取源数据类型的名称。 (继承自 SqlCeDataReader
公共方法 GetDateTime 以 DateTime 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetDateTime(Int32)。)
受保护方法 GetDbDataReader (继承自 DbDataReader
公共方法 GetDecimal 以 Double 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetDecimal(Int32)。)
公共方法 GetDouble 以 Double 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetDouble(Int32)。)
公共方法 GetEnumerator 返回一个 IEnumerator,可用于循环访问数据读取器中的行。 (覆盖 SqlCeDataReader.GetEnumerator()。)
公共方法 GetFieldType 获取是对象的数据类型的 Type。 (继承自 SqlCeDataReader
公共方法 GetFloat 以 Float 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetFloat(Int32)。)
公共方法 GetGuid 以 GUID 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetGuid(Int32)。)
公共方法 GetHashCode (继承自 Object
公共方法 GetInt16 以 Int16 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetInt16(Int32)。)
公共方法 GetInt32 以 Int32 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetInt32(Int32)。)
公共方法 GetInt64 以 Int64 的形式返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetInt64(Int32)。)
公共方法 GetLifetimeService (继承自 MarshalByRefObject
受保护方法 GetList 返回 ResultSetView 的一个实例。
公共方法 GetName 获取指定列的名称。 (继承自 SqlCeDataReader
公共方法 GetOrdinal 在给定列名称的情况下获取列序号。 (继承自 SqlCeDataReader
公共方法 GetProviderSpecificFieldType 获取一个 Object,它表示基础提供程序特定的字段类型。 (继承自 SqlCeDataReader
公共方法 GetProviderSpecificValue (继承自 DbDataReader
公共方法 GetProviderSpecificValues (继承自 DbDataReader
公共方法 GetSchemaTable 返回一个 DataTable,它描述 SqlCeDataReader 的列元数据。 (继承自 SqlCeDataReader
公共方法 GetSqlBinary 以 SqlBinary 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlBinary(Int32)。)
公共方法 GetSqlBoolean 以 SqlBoolean 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlBoolean(Int32)。)
公共方法 GetSqlByte 以 SqlByte 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlByte(Int32)。)
公共方法 GetSqlDateTime 以 SqlDateTime 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlDateTime(Int32)。)
公共方法 GetSqlDecimal 以 SqlDecimal 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlDecimal(Int32)。)
公共方法 GetSqlDouble 以 SqlDouble 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlDouble(Int32)。)
公共方法 GetSqlGuid 以 SqlGuid 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlGuid(Int32)。)
公共方法 GetSqlInt16 以 SqlInt16 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlInt16(Int32)。)
公共方法 GetSqlInt32 以 SqlInt32 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlInt32(Int32)。)
公共方法 GetSqlInt64 以 SqlInt64 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlInt64(Int32)。)
公共方法 GetSqlMetaData 返回与指定的列相关联的元数据信息。
公共方法 GetSqlMoney 以 SqlMoney 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlMoney(Int32)。)
公共方法 GetSqlSingle 以 SqlSingle 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlSingle(Int32)。)
公共方法 GetSqlString 以 SqlString 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetSqlString(Int32)。)
公共方法 GetString 以 String 类型返回指定索引处的列的值。 (覆盖 SqlCeDataReader.GetString(Int32)。)
公共方法 GetType (继承自 Object
公共方法 GetValue 返回指定字段的值。 (覆盖 SqlCeDataReader.GetValue(Int32)。)
公共方法 GetValues 检索指定记录的所有字段构成的数组。 (覆盖 SqlCeDataReader.GetValues(array<Object[])。)
公共方法 InitializeLifetimeService (继承自 MarshalByRefObject
公共方法 Insert(SqlCeUpdatableRecord) 在基础行集中插入指定的 SqlCeUpdatableRecord
公共方法 Insert(SqlCeUpdatableRecord, DbInsertOptions) 将指定的 SqlCeUpdatableRecord 插入基础行集合中,并指定如何定位光标。
受保护方法 IsCommandBehavior 确定指定的 CommandBehavior 是否匹配此 SqlCeDataReader。 (继承自 SqlCeDataReader
公共方法 IsDBNull 确定在指定序号位置的字段是否为空。 (覆盖 SqlCeDataReader.IsDBNull(Int32)。)
公共方法 IsSetAsDefault 确定在指定序号位置的字段是否被标记为使用基础默认值。
受保护方法 MemberwiseClone() (继承自 Object
受保护方法 MemberwiseClone(Boolean) (继承自 MarshalByRefObject
公共方法 NextResult 在 SQL Server Compact 的 .NET Compact Framework 数据提供程序中不受支持。 (继承自 SqlCeDataReader
受保护方法 OnMove 基础结构。 (覆盖 SqlCeDataReader.OnMove()。)
公共方法 Read SqlCeDataReader 移到下一个记录。 (继承自 SqlCeDataReader
公共方法 ReadAbsolute 将阅读器移动到 ResultSet 中特定的记录。
公共方法 ReadFirst 将阅读器放在 ResultSet 中的第一条记录处。
公共方法 ReadLast 将阅读器放在 ResultSet 中的最后一条记录处。
公共方法 ReadPrevious 将阅读器放在位于当前记录之前的记录处。
公共方法 ReadRelative 按指定的距离从当前位置移动阅读器。
公共方法 Seek SqlCeDataReader 放置在包含与指定参数匹配的索引值的记录上。 (继承自 SqlCeDataReader
公共方法 SetBoolean 将指定的列的值设置为传入的布尔值。
公共方法 SetByte 将指定的列的值设置为传入的 Byte 值。
公共方法 SetBytes 从该字段中的指定位置开始,将一定长度的字节从指定的缓冲区复制到指定的列。
公共方法 SetChar 将指定的列的值设置为传入的 Char 值。
公共方法 SetChars 从此字段中指定的位置开始,将一定长度的字符从指定的缓冲区复制到指定的列。
公共方法 SetDateTime 将指定的列的值设置为传入的 DateTime 值。
公共方法 SetDecimal 将指定的列的值设置为传入的 Decimal 值。
公共方法 SetDefault 将指定列设置为其默认值。
公共方法 SetDouble 将指定的列的值设置为传入的 Double 值。
公共方法 SetFloat 将指定的列的值设置为传入的 Float 值。
公共方法 SetGuid 将指定的列的值设置为传入的 Guid 值。
公共方法 SetInt16 将指定的列的值设置为传入的 Int16 值。
公共方法 SetInt32 将指定的列的值设置为传入的 Int32 值。
公共方法 SetInt64 将指定的列的值设置为传入的 Int64 值。
公共方法 SetObjectRef 将对象绑定到指定位置的列。
公共方法 SetSqlBinary 将指定的列的值设置为传入的 SqlBinary 值。
公共方法 SetSqlBoolean 将指定的列的值设置为传入的 SqlBoolean 值。
公共方法 SetSqlByte 将指定的列的值设置为传入的 SqlByte 值。
公共方法 SetSqlDateTime 将指定的列的值设置为传入的 SqlDateTime 值。
公共方法 SetSqlDecimal 将指定的列的值设置为传入的 SqlDecimal 值。
公共方法 SetSqlDouble 将指定的列的值设置为传入的 SqlDouble 值。
公共方法 SetSqlGuid 将指定的列的值设置为传入的 SqlGuid 值。
公共方法 SetSqlInt16 将指定的列的值设置为传入的 SqlInt16 值。
公共方法 SetSqlInt32 将指定的列的值设置为传入的 SqlInt32 值。
公共方法 SetSqlInt64 将指定的列的值设置为传入的 SqlInt64 值。
公共方法 SetSqlMoney 将指定的列的值设置为传入的 SqlMoney 值。
公共方法 SetSqlSingle 将指定的列的值设置为传入的 SqlSingle 值。
公共方法 SetSqlString 将指定的列的值设置为传入的 SqlString 值。
公共方法 SetString 将指定的列的值设置为传入的 String 值。
公共方法 SetValue 将指定的列的值设置为传入的值。
公共方法 SetValues 将指定记录中的各个字段设置为指定数组中对应的值。
公共方法 ToString (继承自 Object
公共方法 Update 将更改从当前记录发送到服务器上的基础行。

页首

显式接口实现

  名称 说明
显式接口实现私有属性 IListSource.ContainsListCollection
显式接口实现私有方法 IEnumerable.GetEnumerator
显式接口实现私有方法 IListSource.GetList
显式接口实现私有方法 IDataRecord.GetData (继承自 DbDataReader

页首

注释

在 SQL Server Compact 的早期版本中,如果要将控件绑定到数据,必须使用 DataSet。尽管 SqlCeDataReader 提供比 DataSet 更好的性能,然而前者是一个只进的、不可更新的游标。在 SQL Server Compact 中,SqlCeResultSet 提供了一个功能组合:DataSet 的可更新性和可滚动性以及与 SqlCeDataReader 类似的性能。

若要创建一个 SqlCeResultSet,您必须调用 ExecuteResultSet 方法而不是使用对象的构造函数。

ResultSetOptions 允许您指定 SqlCeResultSet 的可滚动性、可更新性和敏感度(敏感度可确定 SqlCeResultSet 是否能看到其自身或其他游标所做的更改)。

SqlCeDataReader 的默认位置在第一条记录前面。若要开始访问数据,必须先调用 Read。第一次 Read 会将游标置于第一条记录前面。此行为不同于 SqlCeResultSet.Read 方法的行为。SqlCeResultSet 默认位置在第一条记录。在创建 SqlCeResultSet 之后立即调用 SqlCeResultSet.Read 方法会将游标移至第二条记录。

示例

在下面的示例中,将创建一个新的 SQL Server Compact 数据库。然后,对 SqlCeResultSet 进行初始化,以便用数据填充数据集。

Dim conn As SqlCeConnection = Nothing

Try
    File.Delete("Test.sdf")

    Dim engine As New SqlCeEngine("Data Source = Test.sdf")
    engine.CreateDatabase()

    conn = New SqlCeConnection("Data Source = Test.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "CREATE TABLE myTable (col1 INT, col2 MONEY, col3 NVARCHAR(200))"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "SELECT * FROM myTable"

    Dim rs As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Updatable Or ResultSetOptions.Scrollable)

    Dim rec As SqlCeUpdatableRecord = rs.CreateRecord()

    rec.SetInt32(0, 34)
    rec.SetDecimal(1, System.Convert.ToDecimal(44.66))
    rec.SetString(2, "Sample text")

    rs.Insert(rec)
Catch e As Exception
    MessageBox.Show(e.Message)
Finally
    conn.Close()
End Try
SqlCeConnection conn = null;

try
{
    File.Delete("Test.sdf");

    SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
    engine.CreateDatabase();

    conn = new SqlCeConnection("Data Source = Test.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE myTable (col1 INT, col2 MONEY, col3 NVARCHAR(200))";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "SELECT * FROM myTable";

    SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable | 
        ResultSetOptions.Scrollable);

    SqlCeUpdatableRecord rec = rs.CreateRecord();

    rec.SetInt32(0, 34);
    rec.SetDecimal(1, (decimal)44.66);
    rec.SetString(2, "Sample text");

    rs.Insert(rec);
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    conn.Close();
}

线程安全

此类型的任何公共静态(在 Microsoft Visual Basic 中为共享)成员是线程安全的。不保证所有实例成员都对于线程安全的。

请参阅

参考

System.Data.SqlServerCe 命名空间