DbSeekOptions Enumeration
Optionen, die angeben, wie die Seek-Methode in einem Index sucht.
Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)
Syntax
'Declaration
<FlagsAttribute> _
Public Enumeration DbSeekOptions
[FlagsAttribute]
public enum DbSeekOptions
[FlagsAttribute]
public enum class DbSeekOptions
/** @attribute FlagsAttribute() */
public enum DbSeekOptions
FlagsAttribute
public enum DbSeekOptions
Member
Membername | Beschreibung |
---|---|
After | Wechselt in der Reihenfolge des Indexes zur ersten Zeile nach dem Suchwert, die Werte enthält. |
AfterEqual | Wechselt zur letzten übereinstimmenden Zeile im Index. Wechselt in der Reihenfolge des Index zur ersten Zeile nach dem Suchwert, die Werte enthält, wenn keine übereinstimmenden Zeilen vorhanden sind. |
Before | Wechselt in der Reihenfolge des Indexes zur letzten Zeile vor dem Suchwert, die Werte enthält. |
BeforeEqual | Wechselt zur ersten übereinstimmenden Zeile im Index. Wechselt in der Reihenfolge des Index zur letzten Zeile vor dem Suchwert, die Werte enthält, wenn keine übereinstimmenden Zeilen vorhanden sind. |
FirstEqual | Wechselt in der Reihenfolge des Indexes zur ersten übereinstimmenden Zeile im Index. |
LastEqual | Wechselt in der Reihenfolge des Indexes zur letzten übereinstimmenden Zeile im Index. |
Beispiel
In diesem Beispiel wird die Option FirstEqual für die Seek-Operation im Index angegeben.
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