Share via


DataTableReader.GetOrdinal(String) Yöntem

Tanım

Sütunun adı verilip sütun sırasını 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ı.

Özel durumlar

Kapalı bir içindeki bir sütunu okuma veya sütuna erişme girişiminde bulunuldu DataTableReader.

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

Örnekler

Yalnızca bir sütun adınız varsa ve bu durumda sütun adı kullanıcı tarafından sağlandıysa ve sütundan bilgi almanız gerekiyorsa, gerekli bilgileri ayıklamak için aşağıdakine benzer bir yordam kullanabilirsiniz. Bu örnekte, yordam bir sütun adını kabul eder ve içindeki geçerli satır DataTableReader için bu sütunun içinde yer alan verileri döndürür:

private static object GetValueByName(
    DataTableReader reader, string columnName)
{
    // Consider when to use a procedure like this one carefully:
    // if you're going to retrieve information from a column
    // in a loop, it would be better to retrieve the column
    // ordinal once, store the value, and use the methods
    // of the DataTableReader class directly.
    object columnValue;

    try
    {
        int columnOrdinal = reader.GetOrdinal(columnName);
        columnValue = reader.GetValue(columnOrdinal);
    }
    catch (ArgumentException ex)
    {
        // Throw all other errors back out to the caller.
        columnValue = null;
    }
    return columnValue;
}
Private Function GetValueByName( _
   ByVal reader As DataTableReader, _
   ByVal columnName As String) As Object

   ' Consider when to use a procedure like this one carefully:
   ' If you're going to retrieve information from a column
   ' in a loop, it would be better to retrieve the column
   ' ordinal once, store the value, and use the methods
   ' of the DataTableReader class directly. 
   Dim columnValue As Object

   Try
      Dim columnOrdinal As Integer = reader.GetOrdinal(columnName)
      columnValue = reader.GetValue(columnOrdinal)
   Catch ex As ArgumentException
      ' Throw all other errors back out to the caller.
      columnValue = Nothing
   End Try
   Return columnValue
End Function

Açıklamalar

sınıfı tarafından DataTableReader sağlanan yöntemlerin çoğu sıralı sütun numarasıyla sağlanmalıdır, çünkü sütun adı verilen sütun numarasını almak için yöntemini kullanabilirsiniz GetOrdinal .

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 duyarlı olmayan arama yapılır. Sütun numarası bulunamazsa bir IndexOutOfRangeException oluşturulur.

GetOrdinal kana genişliğine 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ğırarak GetOrdinal ve sonuçları döngü içinde kullanmak üzere bir tamsayı değişkenine atayarak zaman kazanın

Şunlara uygulanır