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) |
页首
方法
页首
显式接口实现
名称 | 说明 | |
---|---|---|
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 中为共享)成员是线程安全的。不保证所有实例成员都对于线程安全的。