Condividi tramite


Proprietà SqlCeCommand.IndexName

Specifica l'indice da aprire.

Spazio dei nomi  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Sintassi

'Dichiarazione
Public Property IndexName As String
    Get
    Set
'Utilizzo
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)

Valore proprietà

Tipo: System.String
Nome dell'indice da aprire.

Osservazioni

La proprietà IndexName consente all'oggetto SqlCeDataReader di recuperare righe da una tabella di base secondo l'ordine delle righe nell'indice specificato. In questo modo è possibile recuperare ordinatamente le righe senza utilizzare un'istruzione SELECT. Ad esempio, per recuperare impiegati in base all'identificatore impiegato, è necessario eseguire dal client SELECT * FROM Employees ORDER BY EmployeeID, ma i risultati possono essere restituiti più rapidamente tramite il recupero di righe in base a un indice mediante la proprietà IndexName. Questa proprietà può essere utilizzata solo su un comando per cui la proprietà CommandType è impostata su TableDirect e la proprietà CommandText è impostata su una tabella di base valida in cui è contenuto l'indice specificato.

Se si recuperano righe da un indice mediante la proprietà IndexName, vengono recuperate tutte le righe da una tabella di base secondo l'ordine dell'indice. Per limitare le righe restituite, utilizzare SetRange; per cercare un valore specifico nell'indice, utilizzare Seek.

Esempi

Nell'esempio che segue viene aperta una tabella di base e viene utilizzato un indice per recuperare rapidamente i valori dall'intervallo specificato.

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

Vedere anche

Riferimento

SqlCeCommand Classe

Spazio dei nomi System.Data.SqlServerCe