SqlCeResultSet.ReadAbsolute Method
Move o leitor para um registro especificado no ResultSet.
Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (em system.data.sqlserverce.dll)
Sintaxe
'Declaração
Public Function ReadAbsolute ( _
position As Integer _
) As Boolean
public bool ReadAbsolute (
int position
)
public:
bool ReadAbsolute (
int position
)
public boolean ReadAbsolute (
int position
)
public function ReadAbsolute (
position : int
) : boolean
Parâmetros
- position
A posição para a qual o leitor deve ser movido.
Valor de retorno
True se a operação tiver êxito; caso contrário, false.
Comentários
ReadAbsolute tem base 0; chamar ReadAbsolute(0)
retornará a primeira linha do ResultSet.
Este método lê o valor da linha com base na posição da linha salva por um indicador. Por exemplo, suponha uma tabela com 10 linhas, e que você abra dois ResultSets: rs1 e rs2. Você chama ReadAbsolue(5)
em rs1 e altera o valor dessa linha para -1. A posição da linha agora é alterada para a primeira posição da lista de linhas, e a linha 4 está na quinta posição. No entanto, se você chamar ReadAbsolute(5)
em rs2, um valor 1 será retornado. ResultSet rs2 mantém um indicador para a quinta linha original e continua a ler essa linha, apesar da alteração de sua posição.
Se você passar um inteiro positivo para essa função, o leitor será movido do primeiro registro para frente pelo número de registros especificado. Se você passar um inteiro negativo para essa função, o leitor será movido do último registro para trás pelo número de registros especificado.
Exemplo
O exemplo a seguir cria um objeto ResultSet e chama vários métodos, incluindo ReadAbsolute.
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)"
cmd.ExecuteNonQuery()
cmd.CommandText = "SELECT * FROM myTable"
Dim rs As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Updatable Or ResultSetOptions.Scrollable)
Dim rec As SqlCeUpdatableRecord = rs.CreateRecord()
' Insert 10 records
'
Dim i As Integer
For i = 0 To 9
rec.SetInt32(0, i)
rs.Insert(rec)
Next i
' Scroll through the results
'
If True = rs.ReadFirst() Then
MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
End If
If True = rs.ReadRelative(5) Then
MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
End If
If True = rs.ReadLast() Then
MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
End If
If True = rs.ReadPrevious() Then
MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
End If
If True = rs.ReadAbsolute(5) Then
MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
End If
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)";
cmd.ExecuteNonQuery();
cmd.CommandText = "SELECT * FROM myTable";
SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable |
ResultSetOptions.Scrollable);
SqlCeUpdatableRecord rec = rs.CreateRecord();
// Insert 10 records
//
for (int i = 0; i < 10; i++)
{
rec.SetInt32(0, i);
rs.Insert(rec);
}
// Scroll through the results
//
if (true == rs.ReadFirst())
{
MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
}
if (true == rs.ReadRelative(5))
{
MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
}
if (true == rs.ReadLast())
{
MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
}
if (true == rs.ReadPrevious())
{
MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
}
if (true == rs.ReadAbsolute(5))
{
MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
conn.Close();
}
Segurança de thread
Quaisquer membros estáticos públicos (compartilhados no Microsoft Visual Basic) desse tipo são thread safe. Não há garantia de que qualquer membro de instância seja thread safe.
Plataformas
Plataformas de desenvolvimento
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
Informações de versão
.NET Framework e NET Compact Framework
Com suporte no 3.5
.NET Framework
Com suporte no 3.0
.NET Compact Framework e .Net Framework
Com suporte no 2.0
Consulte também
Referência
SqlCeResultSet Class
SqlCeResultSet Members
System.Data.SqlServerCe Namespace