Partilhar via


Classe SqlCeResultSet

Um cursor que pode ser atualizado, rolado e associado.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (em System.Data.SqlServerCe.dll)

Sintaxe

'Declaração
Public Class SqlCeResultSet _
    Inherits SqlCeDataReader _
    Implements IEnumerable, IListSource
'Uso
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

Comentários

Em versões anteriores do SQL Server Compact 3.5, para associar controles a dados, era necessário usar um DataSet. O SqlCeDataReader fornece um desempenho melhor que um DataSet, mas trata-se de um cursor somente de encaminhamento, não atualizável. No SQL Server Compact 3.5, o SqlCeResultSet oferece uma combinação de funcionalidades: a capacidade de atualização e rolagem do DataSet junto com um desempenho semelhante ao do SqlCeDataReader.

Para criar um SqlCeResultSet, chame o método ExecuteResultSet em vez de usar o construtor do objeto.

As ResultSetOptions permitem especificar a capacidade de rolagem, de atualização e a sensibilidade (que determina se o SqlCeResultSet vê as alterações feitas por ele mesmo ou por outros) do SqlCeResultSet.

A posição padrão do SqlCeDataReader é anterior ao primeiro registro. Para começar a acessar qualquer dado, chame Read. O primeiro Read posicionará o cursor no primeiro registro. O comportamento é diferente do método SqlCeResultSet.Read. A posição padrão do SqlCeResultSet é o primeiro registro. A chamada do método SqlCeResultSet.Read imediatamente após a criação de SqlCeResultSet moverá o cursor para o segundo registro.

Exemplos

No exemplo a seguir, é criado um novo banco de dados do SQL Server Compact 3.5. Em seguida, um SqlCeResultSet é inicializado para preencher o conjunto de dados com dados.

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();
}

Hierarquia de herança

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

Segurança de thread

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.

Consulte também

Referência

Membros SqlCeResultSet

Namespace System.Data.SqlServerCe