Propriété SqlCeCommand.IndexName

Spécifie l'index à ouvrir.

Espace de noms :  System.Data.SqlServerCe
Assembly :  System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)

Syntaxe

'Déclaration
Public Property IndexName As String
    Get
    Set
'Utilisation
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)

Valeur de propriété

Type : System.String
Nom de l'index à ouvrir.

Notes

IndexName autorise SqlCeDataReader à récupérer des lignes d'une table de base selon l'ordre des lignes figurant dans l'index spécifié. Ceci permet une récupération ordonnée des lignes sans le recours à une instruction SELECT. Par exemple, pour récupérer des employés en fonction de leur ID d'employé, le client peut exécuter SELECT * FROM Employees ORDER BY EmployeeID, mais il est possible d'obtenir les résultats plus rapidement en procédant à une extraction de lignes en fonction d'un index à l'aide de la propriété IndexName. Cette propriété s'applique à une commande uniquement lorsque CommandType a la valeur TableDirect et CommandText a pour valeur une table de base valide qui contient l'index spécifié.

La récupération des lignes à partir d'un index à l'aide de la propriété IndexName permet de récupérer toutes les lignes d'une table de base dans l'ordre de l'index. Pour restreindre les lignes retournées, utilisez SetRange ; pour rechercher une valeur spécifique dans l'index, utilisez Seek.

Exemples

L'exemple suivant ouvre une table de base et utilise un index pour récupérer rapidement des valeurs dans la plage spécifiée.

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

Voir aussi

Référence

SqlCeCommand Classe

Espace de noms System.Data.SqlServerCe