SqlDataReader.GetOrdinal(String) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
열 이름이 지정된 경우 열 서수를 가져옵니다.
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
을 한 번 호출하고 루프 내에서 사용할 정수 변수에 결과를 할당하여 시간을 절약하세요.