Freigeben über


DbRangeOptions Enumeration

Gibt die Optionen an, die von der SetRange-Methode verwendet werden, wenn der zu durchsuchende Indexbereich angegeben wird.

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

Syntax

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

Member

Membername Beschreibung
Default Entspricht dem Festlegen des InclusiveStart-Flags und des InclusiveEnd-Flags.
ExcludeNulls Schließt null-Werte aus dem Bereich aus.
ExclusiveEnd Schließt den endData-Wert aus dem Bereich aus.
ExclusiveStart Schließt den startData-Wert aus dem Bereich aus.
InclusiveEnd Nimmt den endData-Wert in den Bereich auf.
InclusiveStart Nimmt den startData-Wert in den Bereich auf.
Match Gibt einen Bereich an, in dem Indexwerte mit dem Wert von startData übereinstimmen. Bei Verwendung der Match-Option muss für endData der Wert null angegeben werden.
Prefix Gibt einen Bereich an, in dem Indexwerte mit dem Wert von startData beginnen. Bei Verwendung der Prefix-Option muss für endData der Wert null angegeben werden.

Hinweise

Wenn die Option Match oder Prefix angegeben wird, muss der endData-Wert gleich null sein.

Die Match-Option und die ExcludeNulls-Option können nicht kombiniert werden.

Beispiel

Im folgenden Beispiel sind die Bereichsoptionen für die Seek-Operation für den Index als InclusiveStart oder InclusiveEnd angegeben, wenn die SetRange-Methode aufgerufen wird.

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

Plattformen

Entwicklungsplattformen

Windows Vista, Windows Mobile 5.0, Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003, Windows Mobile 2003 for Pocket PC, Windows CE 5.0
Versionsinformationen
.NET Framework und NET Compact Framework
Unterstützt in 3.5
.NET Framework
Unterstützt in 3.0
.NET Compact Framework und .Net Framework
Unterstützt in 2.0

Siehe auch

Verweis

System.Data.SqlServerCe Namespace