Enumeración DbRangeOptions

Especifica las opciones utilizadas por el método SetRange al indicar el intervalo de índices en el que se va a realizar la búsqueda.

Esta enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de los valores de sus miembros.

Espacio de nombres:  System.Data.SqlServerCe
Ensamblado:  System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)

Sintaxis

'Declaración
<FlagsAttribute> _
Public Enumeration DbRangeOptions
'Uso
Dim instance As DbRangeOptions
[FlagsAttribute]
public enum DbRangeOptions
[FlagsAttribute]
public enum class DbRangeOptions
[<FlagsAttribute>]
type DbRangeOptions
public enum DbRangeOptions

Miembros

Nombre del miembro Descripción
InclusiveStart Incluye en el intervalo el valor startData.
InclusiveEnd Incluye en el intervalo el valor endData.
ExclusiveStart Excluye del intervalo el valor startData.
ExclusiveEnd Excluye del intervalo el valor endData.
ExcludeNulls Excluye del intervalo los valores nulles una referencia NULL (Nothing en Visual Basic)..
Prefix Especifica un intervalo en el que los valores de índice comienzan por el valor de startData. Al utilizar la opción Prefix, endData debe establecerse en nulles una referencia NULL (Nothing en Visual Basic)..
Match Especifica un intervalo en el que los valores de índice coinciden con el valor de startData. Al utilizar la opción Match, endData debe establecerse en nulles una referencia NULL (Nothing en Visual Basic)..
Default Equivalente a la configuración de las marcas InclusiveStart y InclusiveEnd.

Comentarios

Si especifica la opción Match o Prefix, el valor endData debe ser nulles una referencia NULL (Nothing en Visual Basic)..

No se pueden combinar las opciones Match y ExcludeNulls.

Ejemplos

En este ejemplo, las opciones de intervalo para la operación Seek en el índice se especifican como InclusiveStart o InclusiveEnd al llamar al método SetRange.

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

Vea también

Referencia

Espacio de nombres System.Data.SqlServerCe