Condividi tramite


DbRangeOptions Enumeration

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

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

Syntax

'Declaration
<FlagsAttribute> _
Public Enumeration DbRangeOptions
'Usage
Dim instance As DbRangeOptions
[FlagsAttribute] 
public enum DbRangeOptions
[FlagsAttribute] 
public enum class DbRangeOptions
/** @attribute FlagsAttribute() */ 
public enum DbRangeOptions
FlagsAttribute 
public enum DbRangeOptions

Members

  Member name Description
Supported by the .NET Compact Framework Default Equivalent to setting both the InclusiveStart and InclusiveEnd flags. 
Supported by the .NET Compact Framework ExcludeNulls Excludes a null reference (Nothing in Visual Basic) values from the range. 
Supported by the .NET Compact Framework ExclusiveEnd Excludes the endData value from the range. 
Supported by the .NET Compact Framework ExclusiveStart Excludes the startData value from the range. 
Supported by the .NET Compact Framework InclusiveEnd Includes the endData value in the range. 
Supported by the .NET Compact Framework InclusiveStart Includes the startData value in the range. 
Supported by the .NET Compact Framework Match Specifies a range in which index values match the value of startData. When using the Match option, endData must be set to a null reference (Nothing in Visual Basic). 
Supported by the .NET Compact Framework Prefix Specifies a range in which index values begin with the value of startData. When using the Prefix option, endData must be set to a null reference (Nothing in Visual Basic). 

Remarks

If you specify the Match or Prefix option, the endData value must be a null reference (Nothing in Visual Basic).

You cannot combine the Match and ExcludeNulls options.

Example

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
try
{
    SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf");
    conn.Open();

    SqlCeCommand cmd = 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 }, null);

    SqlCeDataReader reader = cmd.ExecuteReader(CommandBehavior.Default);

    for (int i = 1; reader.Read(); i++)
    {
        MessageBox.Show(String.Format("{0} ; {1}", reader["Order ID"], reader["Order Date"]));
    }

    // Now we are interested in orders with Order ID between (10020, 10050)
    //
    cmd.SetRange(DbRangeOptions.InclusiveStart | DbRangeOptions.InclusiveEnd,
        new object[] { 10020 }, new object[] { 10050 });

    reader = cmd.ExecuteReader(CommandBehavior.Default);

    // Now seek to Order ID = 10045
    //
    bool onRow = 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)
    {
        for (int i = 1; reader.Read(); i++)
        {
            MessageBox.Show(String.Format("{0} ; {1}", reader["Order ID"], reader["Order Date"]));
        }
    }
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}

Platforms

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.

Version Information

.NET Framework

Supported in: 3.0

.NET Compact Framework

Supported in: 2.0, 1.0

See Also

Reference

System.Data.SqlServerCe Namespace