SqlCeCommand.IndexName 속성

열어 놓을 인덱스를 지정합니다.

네임스페이스:  System.Data.SqlServerCe
어셈블리:  System.Data.SqlServerCe(System.Data.SqlServerCe.dll)

public string IndexName { get; set; }

속성 값

유형: System.String
열어 놓을 인덱스의 이름입니다.

IndexName을 사용하면 SqlCeDataReader는 지정된 인덱스에 있는 행의 순서에 따라 기본 테이블에서 행을 검색할 수 있습니다. 이에 따라 SELECT 문을 사용하지 않고 행을 순서대로 검색할 수 있습니다. 예를 들어 직원 ID를 기초로 직원을 검색하려면, 클라이언트에서 SELECT * FROM Employees ORDER BY EmployeeID를 실행할 수도 있지만 IndexName 속성을 사용하여 인덱스에 기반하여 행을 인출하면 결과가 더욱 빨리 반환될 수 있습니다. 이 속성은 CommandTypeTableDirect로 설정되고 CommandText가 지정된 인덱스를 포함하는 유효한 기본 테이블로 설정된 명령에서만 사용할 수 있습니다.

IndexName 속성을 사용하여 인덱스에서 행을 검색하면 인덱스 순서로 기본 테이블에서 모든 행을 검색하게 됩니다. 반환되는 행을 제한하려면 SetRange를 사용하고 인덱스에서 특정한 값을 찾으려면 Seek를 사용합니다.

다음 예제에서는 기본 테이블을 열고 인덱스를 사용하여 지정된 범위의 값을 신속하게 검색합니다.

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();


표시: