SqlCeCommand.IndexName 属性

指定要打开的索引。

命名空间:  System.Data.SqlServerCe
程序集:  System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)

语法

声明
Public Property IndexName As String
    Get
    Set
用法
Dim instance As SqlCeCommand
Dim value As String

value = instance.IndexName

instance.IndexName = value
public string IndexName { get; set; }
public:
property String^ IndexName {
    String^ get ();
    void set (String^ value);
}
member IndexName : string with get, set
function get IndexName () : String
function set IndexName (value : String)

属性值

类型:System.String
要打开的索引的名称。

注释

IndexName 使 SqlCeDataReader 能够按照指定索引中的行顺序从基表中检索行。这样就可以在不使用 SELECT 语句的情况下按顺序检索行。例如,若要使用雇员 ID 检索雇员,客户端可以执行 SELECT * FROM Employees ORDER BY EmployeeID,但如果使用 IndexName 属性基于索引提取行,则可以更快地返回结果。只有当 CommandType 设置为 TableDirect 且 CommandText 设置为包含指定索引的有效基表时,才可以对命令使用此属性。

如果使用 IndexName 属性从索引中检索行,则将按索引顺序从基表中检索所有行。若要对返回的行施加限制,请使用 SetRange;若要在索引中查找特定的值,请使用 Seek

示例

下面的示例打开了一个基表,并使用索引在指定的范围中快速检索值。

Dim cmd As SqlCeCommand = conn.CreateCommand()
cmd.CommandType = CommandType.TableDirect

' This is the name of the base table 
'
cmd.CommandText = "Orders"

'Assume: Index contains three columns [int, datetime, money]
'
cmd.IndexName = "SomeIndex"

Dim start(2) As Object
Dim [end](0) As Object

start(0) = 1
start(1) = New SqlDateTime(1996, 1, 1)
start(2) = New SqlMoney(10.0)

[end](0) = 5

cmd.SetRange(DbRangeOptions.InclusiveStart Or DbRangeOptions.InclusiveEnd, start, [end])

Dim rdr As SqlCeDataReader = cmd.ExecuteReader()
rdr.Seek(DbSeekOptions.AfterEqual, 1, New SqlDateTime(1997, 1, 1), New SqlMoney(10.5))

While rdr.Read()
    ' Read data the usual way 
    '
End While
rdr.Close()
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.TableDirect;

// This is the name of the base table 
//
cmd.CommandText = "Orders";

//Assume: Index contains three columns [int, datetime, money]
//
cmd.IndexName = "SomeIndex";

object[] start = new object[3];
object[] end = new object[1];

start[0] = 1;
start[1] = new SqlDateTime(1996, 1, 1);
start[2] = new SqlMoney(10.00);

end[0] = 5;

cmd.SetRange(DbRangeOptions.InclusiveStart | DbRangeOptions.InclusiveEnd, start, end);

SqlCeDataReader rdr = cmd.ExecuteReader();
rdr.Seek(DbSeekOptions.AfterEqual, 1, new SqlDateTime(1997, 1, 1), new SqlMoney(10.50));

while (rdr.Read())
{
    // Read data the usual way 
    //
}
rdr.Close();

请参阅

参考

SqlCeCommand 类

System.Data.SqlServerCe 命名空间