Partager via


Énumération DbRangeOptions

Spécifie les options utilisées par la méthode SetRange lors de la spécification de la plage d'index sur laquelle effectuer la recherche.

Cette énumération possède un attribut FlagsAttribute qui permet la combinaison d'opérations de bits de ses valeurs membres.

Espace de noms :  System.Data.SqlServerCe
Assembly :  System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)

Syntaxe

'Déclaration
<FlagsAttribute> _
Public Enumeration DbRangeOptions
'Utilisation
Dim instance As DbRangeOptions
[FlagsAttribute]
public enum DbRangeOptions
[FlagsAttribute]
public enum class DbRangeOptions
[<FlagsAttribute>]
type DbRangeOptions
public enum DbRangeOptions

Membres

Nom de membre Description
InclusiveStart Inclut la valeur startData dans la plage.
InclusiveEnd Inclut la valeur endData dans la plage.
ExclusiveStart Exclut de la plage la valeur startData.
ExclusiveEnd Exclut de la plage la valeur endData.
ExcludeNulls Exclut de la plage les valeurs nullune référence Null (Nothing dans Visual Basic).
Prefix Spécifie une plage dans laquelle les valeurs d'index commencent par la valeur de startData. Lors de l'utilisation de l'option Prefix, endData doit avoir la valeur nullune référence Null (Nothing dans Visual Basic).
Match Spécifie une plage dans laquelle les valeurs d'index correspondent à la valeur de startData. Lors de l'utilisation de l'option Match, endData doit avoir la valeur nullune référence Null (Nothing dans Visual Basic).
Default Équivaut à définir à la fois l'indicateur InclusiveStart et l'indicateur InclusiveEnd.

Notes

Si vous spécifiez l'option Match ou Prefix, la valeur endData doit être nullune référence Null (Nothing dans Visual Basic).

Il n'est pas possible de combiner les options Match et ExcludeNulls.

Exemples

Dans cet exemple, les options de plage de l'opération Seek sur l'index sont spécifiées en tant que InclusiveStart ou InclusiveEnd lors de l'appel à la méthode 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);
        }

Voir aussi

Référence

Espace de noms System.Data.SqlServerCe