Freigeben über


SqlCeCommand.IndexName-Eigenschaft

Gibt den zu öffnenden Index an.

Namespace:  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Syntax

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

Eigenschaftswert

Typ: System.String
Der Name des zu öffnenden Indexes.

Hinweise

Die IndexName-Eigenschaft ermöglicht es der SqlCeDataReader-Klasse, anhand der Reihenfolge der Zeilen im angegebenen Index Zeilen aus einer Basistabelle abzurufen. Dadurch können die Zeilen geordnet abgerufen werden, ohne eine SELECT-Anweisung zu verwenden. Wenn Sie z. B. Mitarbeiter anhand der Mitarbeiter-ID abrufen möchten, könnte der Client SELECT * FROM Employees ORDER BY EmployeeID ausführen. Die Ergebnisse können jedoch schneller zurückgegeben werden, wenn die Zeilen mithilfe der IndexName-Eigenschaft basierend auf einem Index abgerufen werden. Diese Eigenschaft kann nur für einen Befehl verwendet werden, bei dem die CommandType-Eigenschaft auf TableDirect und die CommandText-Eigenschaft auf eine gültige Basistabelle festgelegt ist, die den angegebenen Index enthält.

Wenn Zeilen mithilfe der IndexName-Eigenschaft von einem Index abgerufen werden, werden sämtliche Zeilen aus einer Basistabelle in der Indexreihenfolge abgerufen. Mit der SetRange-Methode können Sie die zurückgegebenen Zeilen einschränken; mit der Seek-Methode können Sie einen bestimmten Wert im Index suchen.

Beispiele

Im folgenden Beispiel wird eine Basistabelle geöffnet, und es wird ein Index zum schnellen Abrufen von Werten aus dem angegebenen Bereich verwendet.

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

Siehe auch

Verweis

SqlCeCommand Klasse

System.Data.SqlServerCe-Namespace