Share via


DataTableReader.GetOrdinal(String) Metode

Definisi

Mendapatkan kolom ordinal, dengan nama kolom.

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

Nama kolom.

Mengembalikan

Ordinal kolom berbasis nol.

Pengecualian

Upaya dilakukan untuk membaca atau mengakses kolom dalam keadaan tertutup DataTableReader.

Nama yang ditentukan bukan nama kolom yang valid.

Contoh

Jika Anda hanya memiliki nama kolom, dalam hal ini nama kolom disediakan pengguna, dan Anda harus mengambil informasi dari kolom, Anda bisa menggunakan prosedur seperti berikut ini untuk mengekstrak informasi yang diperlukan. Dalam contoh ini, prosedur menerima nama kolom dan mengembalikan data yang terkandung dalam kolom tersebut untuk baris saat ini di DataTableReader :

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

Keterangan

Karena sebagian besar metode yang disediakan oleh DataTableReader kelas harus disediakan dengan nomor kolom ordinal, Anda dapat menggunakan GetOrdinal metode untuk mengambil nomor kolom, dengan nama kolom.

GetOrdinal melakukan pencarian peka huruf besar/kecil terlebih dahulu. Jika gagal, pencarian tidak peka huruf besar/kecil kedua akan dilakukan. Jika nomor kolom tidak ditemukan, IndexOutOfRangeException maka akan dilemparkan.

GetOrdinal tidak peka lebar kana.

Karena pencarian berbasis ordinal lebih efisien daripada pencarian bernama, tidak efisien untuk memanggil GetOrdinal dalam perulangan. Hemat waktu dengan memanggil GetOrdinal satu kali dan menetapkan hasil ke variabel bilangan bulat untuk digunakan dalam perulangan

Berlaku untuk