命名空间: 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
注释
在 SQL Server Compact 3.5 的早期版本中,如果要将控件绑定到数据,必须使用 DataSet。尽管 SqlCeDataReader 提供比 DataSet 更好的性能,然而前者是一个只进的、不可更新的游标。在 SQL Server Compact 3.5 中,SqlCeResultSet 提供了一个功能组合:DataSet 的可更新性和可滚动性以及与 SqlCeDataReader 类似的性能。
若要创建一个 SqlCeResultSet,您必须调用 ExecuteResultSet 方法而不是使用对象的构造函数。
ResultSetOptions 允许您指定 SqlCeResultSet 的可滚动性、可更新性和敏感度(敏感度可确定 SqlCeResultSet 是否能看到其自身或其他游标所做的更改)。
SqlCeDataReader 的默认位置在第一条记录前面。若要开始访问数据,必须先调用 Read。第一次 Read 会将游标置于第一条记录前面。此行为不同于 SqlCeResultSet.Read 方法的行为。SqlCeResultSet 默认位置在第一条记录。在创建 SqlCeResultSet 之后立即调用 SqlCeResultSet.Read 方法会将游标移至第二条记录。
示例
在下面的示例中,将创建一个新的 SQL Server Compact 3.5 数据库。然后,对 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();
}
继承层次结构
System. . :: . .Object
System. . :: . .MarshalByRefObject
System.Data.Common. . :: . .DbDataReader
System.Data.SqlServerCe. . :: . .SqlCeDataReader
System.Data.SqlServerCe..::..SqlCeResultSet
线程安全
Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.