Share via


SqlCeResultSet.ReadAbsolute-Methode

Verschiebt den Reader zu einem bestimmten Datensatz im ResultSet.

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

Syntax

'Declaration
Public Function ReadAbsolute ( _
    position As Integer _
) As Boolean
'Usage
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

Parameter

  • position
    Typ: System.Int32
    Die Position, an die der Reader verschoben werden soll.

Rückgabewert

Typ: System.Boolean
True, wenn der Vorgang erfolgreich war, andernfalls False.

Hinweise

Die ReadAbsolute-Methode ist nullbasiert. Aufrufe von ReadAbsolute(0) geben die erste Zeile von ResultSet zurück.

Diese Methode liest den Wert der Zeile basierend auf der durch das Lesezeichen gespeicherten Zeilenposition. Angenommen, in einer Tabelle mit 10 Zeilen werden zwei ResultSets geöffnet: rs1 und rs2. Rufen Sie ReadAbsolue(5) für rs1 auf, und ändern Sie den Wert dieser Zeile in "-1". Die Position der Zeile ist jetzt die erste in der Liste von Zeilen, und Zeile 4 befindet sich an der fünften Position. Wenn ReadAbsolute(5) jetzt für rs2 aufgerufen wird, wird der Wert -1 zurückgegeben. ResultSet rs2 behält ein Lesezeichen zur ursprünglich fünften Zeile bei und liest trotz der Positionsveränderung immer diese Zeile.

Wenn eine positive Ganzzahl an diese Funktion übergeben wird, wird der Reader vom ersten Datensatz um die angegebene Anzahl von Datensätzen nach vorne verschoben. Wenn eine negative Ganzzahl an diese Funktion übergeben wird, wird der Reader vom letzten Datensatz um die angegebene Anzahl von Datensätzen nach hinten verschoben.

Beispiele

Im folgenden Beispiel wird ein ResultSet-Objekt erstellt, und es werden anschließend mehrere Methoden aufgerufen, einschließlich der ReadAbsolute-Methode.

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

Siehe auch

Verweis

SqlCeResultSet Klasse

System.Data.SqlServerCe-Namespace