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