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.