다음을 통해 공유


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 대/소문자 구분 조회를 먼저 수행합니다. 실패하면 대/소문자를 구분하지 않는 두 번째 검색이 발생합니다(데이터베이스 데이터 정렬을 사용하여 대/소문자를 구분하지 않는 비교가 수행됨). 예기치 않은 결과는 비교가 문화권별 대/소문자 규칙의 영향을 받을 때 발생할 수 있습니다. 예를 들어 터키어에서 다음 예제에서는 터키어의 파일 시스템에서 "file"의 문자 'i'에 대한 언어 대/소문자 규칙을 사용하지 않기 때문에 잘못된 결과를 생성합니다. 메서드는 0부터 시작하는 열 서수가 없는 경우 예외를 throw IndexOutOfRange 합니다.

GetOrdinal에서는 가나 너비를 구분하지 않습니다.

서수 기반 조회가 명명된 조회보다 효율적이므로 루프 내에서 GetOrdinal을 호출하는 것은 비효율적입니다. GetOrdinal을 한 번 호출하고 루프 내에서 사용할 정수 변수에 결과를 할당하여 시간을 절약하세요.

적용 대상

추가 정보