DbSeekOptions Enumeration

Options that specify how the Seek method will seek on an index.

Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)

'Declaration
<FlagsAttribute> _
Public Enumeration DbSeekOptions
'Usage
Dim instance As DbSeekOptions

/** @attribute FlagsAttribute() */ 
public enum DbSeekOptions
FlagsAttribute 
public enum DbSeekOptions

 Member nameDescription
Supported by the .NET Compact FrameworkAfterAdvances to the first row with values (in index order) after the seek value. 
Supported by the .NET Compact FrameworkAfterEqualAdvances to the last matching row on the index. If there are no matching rows, advances to the first row with values after the seek value, in index order. 
Supported by the .NET Compact FrameworkBeforeAdvances to the last row with values (in index order) before the seek value. 
Supported by the .NET Compact FrameworkBeforeEqualAdvances to the first matching row on the index. If there are no matching rows, advances to the last row with values before the seek value, in index order. 
Supported by the .NET Compact FrameworkFirstEqualAdvances to the first matching row (in index order) on the index. 
Supported by the .NET Compact FrameworkLastEqualAdvances to the last matching row (in index order) on the index.  

In this example, the FirstEqual option is specified for the Seek operation on the index.

Try
    Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandType = CommandType.TableDirect
    cmd.IndexName = "Orders_PK"
    cmd.CommandText = "Orders"

    ' We are interested in orders that match Order ID = 10020
    '
    cmd.SetRange(DbRangeOptions.Match, New Object() {10020}, Nothing)

    Dim reader As SqlCeDataReader = cmd.ExecuteReader(CommandBehavior.Default)

    While reader.Read()
        MessageBox.Show(String.Format("{0} ; {1}", reader("Order ID"), reader("Order Date")))
    End While

    ' Now we are interested in orders with Order ID between (10020, 10050)
    '
    cmd.SetRange(DbRangeOptions.InclusiveStart Or DbRangeOptions.InclusiveEnd, New Object() {10020}, New Object() {10050})

    reader = cmd.ExecuteReader(CommandBehavior.Default)

    ' Now seek to Order ID = 10045
    '
    Dim onRow As Boolean =  reader.Seek(DbSeekOptions.FirstEqual, New Object() {10045})

    ' Now ,the reader will return rows with Order ID >= 10045 <= 10050
    ' because the range was set to (10020, 10050)
    '
    If onRow Then
        While reader.Read()
            MessageBox.Show(String.Format("{0} ; {1}", reader("Order ID"), reader("Order Date")))
        End While
    End If
Catch e As Exception
    MessageBox.Show(e.Message)
End Try

Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows XP Professional x64 Edition, Windows XP SP2

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show: