DbSeekOptions 列挙体
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
名前空間: System.Data.SqlServerCeアセンブリ: System.Data.SqlServerCe (system.data.sqlserverce.dll 内)

<FlagsAttribute> _ Public Enumeration DbSeekOptions

メンバ名 | 説明 | |
---|---|---|
![]() | After | インデックス順で、シーク値よりも後にあり、値を持つ最初の行に進みます。 |
![]() | AfterEqual | インデックスが一致する最後の行に進みます。一致する行がない場合は、シーク値よりもインデックス順で後の値を持つ最初の行に進みます。 |
![]() | Before | インデックス順で、シーク値よりも前にあり、値を持つ最後の行に進みます。 |
![]() | BeforeEqual | インデックスが一致する最初の行に進みます。一致する行がない場合、シーク値よりもインデックス順で前の値を持つ最初の行に進みます。 |
![]() | FirstEqual | インデックス順で、インデックスが最初に一致する行に進みます。 |
![]() | LastEqual | インデックス順で、インデックスが最後に一致する行に進みます。 |

この例では、インデックスに対する Seek 操作に FirstEqual オプションを指定します。
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); }

Windows CE, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows XP Professional x64 Edition, Windows XP SP2
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- DbSeekOptions 列挙体のページへのリンク