Aracılığıyla paylaş


SqlDataReader.GetOrdinal(String) Yöntem

Tanım

Sütunun adı verilen sıralı sütunu alır.

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

Parametreler

name
String

Sütunun adı.

Döndürülenler

Sıfır tabanlı sütun sıralı.

Uygulamalar

Özel durumlar

Belirtilen ad geçerli bir sütun adı değil.

Örnekler

Aşağıdaki örnekte yönteminin nasıl kullanılacağı gösterilmektedir GetOrdinal .

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

Açıklamalar

GetOrdinal önce büyük/küçük harfe duyarlı bir arama gerçekleştirir. Başarısız olursa ikinci bir büyük/küçük harfe duyarsız arama yapılır (veritabanı harmanlaması kullanılarak büyük/küçük harfe duyarsız karşılaştırma yapılır). Karşılaştırmalar kültüre özgü büyük/küçük harf kurallarından etkilendiğinde beklenmedik sonuçlar oluşabilir. Örneğin, Türkçe'de aşağıdaki örnek yanlış sonuçlar verir çünkü Türkçedeki dosya sistemi "file" içindeki 'i' harfi için dilsel büyük/küçük harf kuralları kullanmaz. Sıfır tabanlı sütun sıralı bulunamazsa yöntemi bir IndexOutOfRange özel durum oluşturur.

GetOrdinal kana-width duyarsızdır.

Sıra tabanlı aramalar adlandırılmış aramalardan daha verimli olduğundan, döngü içinde çağrı GetOrdinal yapmak verimsizdir. Bir kez çağırıp GetOrdinal sonuçları döngü içinde kullanmak üzere bir tamsayı değişkenine atayarak zaman kazanın.

Şunlara uygulanır