Partager via


Méthode SqlCeResultSet.ReadAbsolute

Déplace le lecteur vers un enregistrement spécifique dans ResultSet.

Espace de noms :  System.Data.SqlServerCe
Assembly :  System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)

Syntaxe

'Déclaration
Public Function ReadAbsolute ( _
    position As Integer _
) As Boolean
'Utilisation
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

Paramètres

  • position
    Type : System.Int32
    Position vers laquelle déplacer le lecteur.

Valeur de retour

Type : System.Boolean
True si l'opération a réussi ; sinon, false.

Notes

ReadAbsolute est de base 0 ; l'appel à ReadAbsolute(0) retournera la première ligne de ResultSet.

Cette méthode lit la valeur de la ligne en fonction de la position de ligne enregistrée par un signet. Par exemple, supposons qu'une table contient 10 lignes et que vous ouvrez deux ResultSet : rs1 et rs2. Vous appelez ReadAbsolue(5) sur rs1 et remplacez la valeur de cette ligne par -1. La position de la ligne a été modifiée ; elle se trouve désormais en première position dans la liste de lignes, tandis que la ligne 4 est à la 5ème position. Toutefois, si vous appelez maintenant ReadAbsolute(5) sur rs2, la valeur -1 est retournée. ResultSet rs2 conserve un signet à la 5ème ligne d'origine et continue de lire cette ligne, en dépit de son changement de position.

Si vous passez un entier positif à cette fonction, le lecteur est avancé du nombre spécifié d'enregistrements à partir du premier enregistrement. Si vous passez un entier négatif à cette fonction, le lecteur est reculé du nombre spécifié d'enregistrements à partir du dernier enregistrement.

Exemples

L'exemple suivant crée un objet ResultSet, puis appelle plusieurs méthodes, dont 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();
}

Voir aussi

Référence

SqlCeResultSet Classe

Espace de noms System.Data.SqlServerCe