Condividi tramite


Metodo SqlCeResultSet.ReadAbsolute

Sposta il lettore su un record specifico nell'oggetto ResultSet.

Spazio dei nomi  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Sintassi

'Dichiarazione
Public Function ReadAbsolute ( _
    position As Integer _
) As Boolean
'Utilizzo
Dim instance As SqlCeResultSet
Dim position As Integer
Dim returnValue As Boolean

returnValue = instance.ReadAbsolute(position)
public bool ReadAbsolute(
    int position
)
public:
bool ReadAbsolute(
    int position
)
member ReadAbsolute : 
        position:int -> bool 
public function ReadAbsolute(
    position : int
) : boolean

Parametri

  • position
    Tipo: System.Int32
    Posizione in cui spostare il lettore.

Valore restituito

Tipo: System.Boolean
True se l'operazione viene completata; in caso contrario, false.

Osservazioni

Il metodo ReadAbsolute è in base zero e la chiamata a ReadAbsolute(0) restituirà la prima riga dell'oggetto ResultSet.

Questo metodo consente di leggere il valore della riga in base alla sua posizione salvata tramite un segnalibro. Si supponga, ad esempio, di disporre di una tabella con 10 righe e di aprire due oggetti ResultSet, ovvero i set di risultati 1 e 2. Dopo aver chiamato l'oggetto ReadAbsolue(5) sul set di risultati 1, il valore di questa riga viene modificato in -1. La posizione della riga ora è cambiata ed è la prima dell'elenco di righe, mentre la riga 4 è in quinta posizione. Se successivamente si effettua una chiamata a ReadAbsolute(5) sul set di risultati 2, verrà restituito un valore uguale a 1. L'oggetto ResultSet relativo al set di risultati 2 mantiene un segnalibro in corrispondenza della quinta riga, nonostante la modifica della posizione.

Se viene passato un valore integer positivo a questa funzione, il visualizzatore viene spostato in avanti dal primo record per il numero specificato di record. Se viene passato un valore integer negativo a questa funzione, il visualizzatore viene spostato indietro dall'ultimo record per il numero specificato di record.

Esempi

Nell'esempio seguente viene creato un oggetto ResultSet e successivamente vengono chiamati diversi metodi, incluso il metodo 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();
}

Vedere anche

Riferimento

SqlCeResultSet Classe

Spazio dei nomi System.Data.SqlServerCe