Поделиться через


SqlCeResultSet Class

Обновляемый, прокручиваемый и связываемый курсор.

Пространство имен: System.Data.SqlServerCe
Сборка: System.Data.SqlServerCe (в system.data.sqlserverce.dll)

Синтаксис

'Декларация
<DefaultMemberAttribute("Item")> _
Public Class SqlCeResultSet
    Inherits SqlCeDataReader
    Implements IEnumerable, IListSource
[DefaultMemberAttribute("Item")] 
public class SqlCeResultSet : SqlCeDataReader, IEnumerable, IListSource
[DefaultMemberAttribute(L"Item")] 
public ref class SqlCeResultSet : public SqlCeDataReader, IEnumerable, IListSource
/** @attribute DefaultMemberAttribute("Item") */ 
public class SqlCeResultSet extends SqlCeDataReader implements IEnumerable, IListSource
DefaultMemberAttribute("Item") 
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.Read сразу после создания SqlCeResultSet переместит курсор ко второй записи.

Иерархия наследования

System.Object
   System.MarshalByRefObject
     System.Data.Common.DbDataReader
       System.Data.SqlServerCe.SqlCeDataReader
        System.Data.SqlServerCe.SqlCeResultSet

Пример

В следующем примере создается новая база данных 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();
}

Многопоточное использование

Все общие статические члены (Shared в Microsoft Visual Basic) этого типа можно использовать в многопоточных операциях. Безопасная многопоточная работа с членами экземпляров типа не гарантируется.

Платформы

Платформы разработки

Windows Vista, Windows Mobile 5.0, Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Mobile 2003 for Pocket PC, Windows CE 5.0
Сведения о версии
.NET Framework и NET Compact Framework
Поддерживается в версии 3.5
.NET Framework
Поддерживается в версии 3.0
.NET Compact Framework и .Net Framework
Поддерживается в версии 2.0

См. также

Справочник

SqlCeResultSet Members
System.Data.SqlServerCe Namespace