Поделиться через


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

Имя столбца.

Возвращаемое значение

Порядковый номер столбца (от нуля).

Реализации

Исключения

Заданное имя недопустимо для имени столбца.

Примеры

В следующем примере показано использование метода 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 сначала выполняет поиск с учетом регистра. В случае сбоя выполняется второй поиск без учета регистра (сравнение без учета регистра выполняется с использованием параметров сортировки базы данных). Непредвиденные результаты могут возникать, если на сравнение влияют правила регистра, относящиеся к языку и региональным параметрам. Например, на турецком языке следующий пример дает неправильные результаты, так как файловая система на турецком языке не использует правила лингвистического регистра для буквы "i" в "file". Метод создает исключение, IndexOutOfRange если порядковый номер столбца, отсчитываемый от нуля, не найден.

Метод GetOrdinal не учитывает ширину японской азбуки.

Поиск по порядковым числительным более эффективен, чем поиск по имени, поэтому не рекомендуется использовать метод GetOrdinal в цикле. Для экономии времени вызовите метод GetOrdinal один раз и назначьте полученные результаты целочисленной переменной для использования в цикле.

Применяется к

См. также раздел