DbRangeOptions Enumeration

Specifies the options used by the SetRange method when specifying the index range over which to seek.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

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

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

Member nameDescription
InclusiveStartIncludes the startData value in the range.
InclusiveEndIncludes the endData value in the range.
ExclusiveStartExcludes the startData value from the range.
ExclusiveEndExcludes the endData value from the range.
ExcludeNullsExcludes Nothing values from the range.
PrefixSpecifies a range in which index values begin with the value of startData. When using the Prefix option, endData must be set to Nothing.
MatchSpecifies a range in which index values match the value of startData. When using the Match option, endData must be set to Nothing.
DefaultEquivalent to setting both the InclusiveStart and InclusiveEnd flags.

If you specify the Match or Prefix option, the endData value must be Nothing.

You cannot combine the Match and ExcludeNulls options.

In this example, the range options for the Seek operation on the index are specified as InclusiveStart or InclusiveEnd when calling the SetRange method.

        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


Show: