DbRangeOptions Enumeration
指定 <codeEntityReference autoUpgrade="true">M:System.Data.SqlServerCe.SqlCeCommand.SetRange(System.Data.SqlServerCe.DbRangeOptions,System.Object[],System.Object[])</codeEntityReference> 方法在指定要搜尋的索引範圍時所使用的選項。
命名空間: System.Data.SqlServerCe
組件: System.Data.SqlServerCe (在 system.data.sqlserverce.dll)
語法
'宣告
<FlagsAttribute> _
Public Enumeration DbRangeOptions
[FlagsAttribute]
public enum DbRangeOptions
[FlagsAttribute]
public enum class DbRangeOptions
/** @attribute FlagsAttribute() */
public enum DbRangeOptions
FlagsAttribute
public enum DbRangeOptions
成員
成員名稱 | 描述 |
---|---|
Default | 相當於設定 InclusiveStart 及 InclusiveEnd 旗標兩者。 |
ExcludeNulls | 將 null 值排除在範圍之外。 |
ExclusiveEnd | 將 endData 值排除在範圍之外。 |
ExclusiveStart | 將 startData 值排除在範圍之外。 |
InclusiveEnd | 將 endData 值併入範圍內。 |
InclusiveStart | 將 startData 值併入範圍內。 |
Match | 指定範圍,其中的索引值會符合 startData 的值。當使用 Match 選項時,endData 必須設定為 null。 |
Prefix | 指定範圍,其中的索引值會以 startData 的值當做開頭。當使用 Prefix 選項時,endData 必須設定為 null。 |
備註
如果您指定 Match 或 Prefix 選項,endData 值必須是 null。
您不能結合 Match 和 ExcludeNulls 選項。
範例
在這個範例中,索引上 <codeEntityReference autoUpgrade="true">M:System.Data.SqlServerCe.SqlCeDataReader.Seek(System.Data.SqlServerCe.DbSeekOptions,System.Object[])</codeEntityReference> 作業的範圍選項會在呼叫 <codeEntityReference autoUpgrade="true">M:System.Data.SqlServerCe.SqlCeCommand.SetRange(System.Data.SqlServerCe.DbRangeOptions,System.Object[],System.Object[])</codeEntityReference> 方法時指定為 <parameterReference>InclusiveStart</parameterReference> 或 <parameterReference>InclusiveEnd</parameterReference>。
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 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
版本資訊
.NET Framework 及 NET Compact Framework
支援於 3.5
.NET Framework
支援於 3.0
.NET Compact Framework 及 .Net Framework
支援於 2.0