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 네임스페이스