Freigeben über


SqlDataReader.GetOrdinal(String) Methode

Definition

Ruft bei angegebenem Spaltennamen die Ordnungszahl der Spalte ab.

public:
 override int GetOrdinal(System::String ^ name);
public override int GetOrdinal (string name);
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (name As String) As Integer

Parameter

name
String

Der Name der Spalte.

Gibt zurück

Die nullbasierte Ordnungszahl der Spalte.

Implementiert

Ausnahmen

Der angegebene Name ist kein gültiger Spaltenname.

Beispiele

Im folgenden Beispiel wird die Verwendung der GetOrdinal-Methode veranschaulicht.

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadGetOrdinal(str);
    }

    private static void ReadGetOrdinal(string connectionString)
    {
        string queryString = "SELECT DISTINCT CustomerID FROM dbo.Orders;";
        using (SqlConnection connection =
                   new SqlConnection(connectionString))
        {
            SqlCommand command =
                new SqlCommand(queryString, connection);
            connection.Open();

            SqlDataReader reader = command.ExecuteReader();

            // Call GetOrdinal and assign value to variable.
            int customerID = reader.GetOrdinal("CustomerID");

            // Use variable with GetString inside of loop.
            while (reader.Read())
            {
                Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
            }

            // Call Close when done reading.
            reader.Close();
        }
    }
}

Hinweise

GetOrdinal führt zuerst eine Nachbereinigung der Groß-/Kleinschreibung durch. Wenn ein Fehler auftritt, wird eine zweite Suche ohne Beachtung der Groß-/Kleinschreibung durchgeführt (ein Vergleich ohne Beachtung der Groß-/Kleinschreibung wird mithilfe der Datenbanksortierung durchgeführt). Unerwartete Ergebnisse können auftreten, wenn Vergleiche durch kulturspezifische Groß- und Kleinschreibungsregeln beeinflusst werden. Im türkischen Beispiel werden beispielsweise falsche Ergebnisse erzielt, da das Dateisystem in Türkisch keine linguistischen Großschreibungsregeln für den Buchstaben "i" in "file" verwendet. Die -Methode löst eine Ausnahme aus IndexOutOfRange , wenn die nullbasierte Spalten ordnungszahl nicht gefunden wird.

GetOrdinal berücksichtigt die Laufweite von Kana nicht.

Da Nachschlagevorgänge auf der Basis von Ordinalzahlen effizienter sind als Nachschlagevorgänge nach Namen, ist der Aufruf von GetOrdinal innerhalb einer Schleife ineffizient. Sparen Sie Zeit, indem Sie GetOrdinal einmal aufrufen und die Ergebnisse für die Verwendung innerhalb der Schleife an eine Integervariable zuweisen.

Gilt für: