DbSeekOptions Enumeration
.NET Framework 3.0
Options that specify how the Seek method will seek on an index.
Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)
Assembly: System.Data.SqlServerCe (in system.data.sqlserverce.dll)
| Member name | Description | |
|---|---|---|
![]() | After | Advances to the first row with values (in index order) after the seek value. |
![]() | AfterEqual | Advances to the last matching row on the index. If there are no matching rows, advances to the first row with values after the seek value, in index order. |
![]() | Before | Advances to the last row with values (in index order) before the seek value. |
![]() | BeforeEqual | Advances to the first matching row on the index. If there are no matching rows, advances to the last row with values before the seek value, in index order. |
![]() | FirstEqual | Advances to the first matching row (in index order) on the index. |
![]() | LastEqual | Advances to the last matching row (in index order) on the index. |
In this example, the FirstEqual option is specified for the Seek operation on the index.
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); }
