IDataRecord.GetOrdinal(String) メソッド

定義

名前付きフィールドのインデックスを返します。

public:
 int GetOrdinal(System::String ^ name);
public int GetOrdinal(string name);
abstract member GetOrdinal : string -> int
Public Function GetOrdinal (name As String) As Integer

パラメーター

name
String

検索するフィールドの名前。

返品

名前付きフィールドのインデックス。

次の例では、継承された GetOrdinal メソッドを使用する方法を示します。

public static void ReadData(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM Orders";

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcCommand command = new OdbcCommand(queryString, connection);

        connection.Open();
        OdbcDataReader reader = command.ExecuteReader();

        int customerID = reader.GetOrdinal("CustomerID");

        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }

        // Call Close when done reading.
        reader.Close();
    }
}
Public Sub ReadData(ByVal connectionString As String)
    Dim queryString As String = "SELECT DISTINCT CustomerID FROM Orders"

    Using connection As New OdbcConnection(connectionString)
        Dim command As New OdbcCommand(queryString, connection)

        connection.Open()

        Dim reader As OdbcDataReader = command.ExecuteReader()

        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

注釈

GetOrdinal では、大文字と小文字が区別される検索が最初に実行されます。 失敗した場合は、大文字と小文字を区別しない 2 つ目の検索が行われます。 GetOrdinal はかな幅を区別しません。 名前付きフィールドのインデックスが見つからない場合は、 IndexOutOfRangeException がスローされます。

序数ベースの参照は名前付き参照よりも効率的であるため、ループ内で GetOrdinal を呼び出すのは非効率的です。 GetOrdinalを 1 回呼び出し、ループ内で使用するために結果を整数変数に割り当てることで、時間を節約できます。

適用対象