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