다음을 통해 공유


SqlDataReader.GetOrdinal(String) 메서드

정의

열 이름이 지정된 경우 열 서수를 가져옵니다.

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

매개 변수

name
String

열 이름입니다.

반환

열 서수(0부터 시작)입니다.

구현

예외

지정된 이름이 올바른 열 이름이 아닌 경우

예제

다음 예제에서는 GetOrdinal 메서드를 사용하는 방법을 보여 줍니다.

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadGetOrdinal(str);
    }

    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();
        }
    }
}

설명

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

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

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

적용 대상