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