次の方法で共有


SqlDataReader.GetOrdinal(String) メソッド

定義

列の名前を指定して、列の序数を取得します。

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

パラメーター

name
String

列の名前。

戻り値

0 から始まる列序数。

実装

例外

指定された名前は、有効な列名ではありません。

GetOrdinal メソッドの使用方法を次の例に示します。

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();
    }
}
Private Sub ReadGetOrdinal(ByVal connectionString As String)
    Dim queryString As String = _
       "SELECT DISTINCT CustomerID FROM dbo.Orders;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call GetOrdinal and assign value to variable.
        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        ' Use variable with GetString inside of loop.
        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 つ目の大文字と小文字を区別しない検索が行われます (大文字と小文字を区別しない比較は、データベース照合順序を使用して行われます)。 比較がカルチャ固有の大文字と小文字の規則の影響を受けると、予期しない結果が発生する可能性があります。 たとえば、トルコ語では、トルコ語のファイル システムで "file" の文字 'i' に言語的な大文字と小文字の規則が使用されないため、次の例では間違った結果が生成されます。 0 から始まる列序数が見つからない場合、メソッドは例外をスロー IndexOutOfRange します。

GetOrdinal では、カタカナの全角と半角が区別されません。

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

適用対象

こちらもご覧ください