SqlDataReader.GetOrdinal(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.