DataTableReader.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
Имя столбца.
Возвращаемое значение
Порядковый номер столбца от нуля.
Исключения
Предпринята попытка считывания или доступа к столбцу в закрытом DataTableReader.
Указанное имя не является допустимым именем столбца.
Примеры
Если у вас есть только имя столбца, в этом случае имя столбца предоставляется пользователем, и необходимо получить сведения из столбца, можно использовать процедуру, как показано ниже, для извлечения необходимых сведений. В этом примере процедура принимает имя столбца и возвращает данные, содержащиеся в этом столбце для текущей строки в DataTableReader следующей строке:
private static object GetValueByName(
DataTableReader reader, string columnName)
{
// Consider when to use a procedure like this one carefully:
// if you're going to retrieve information from a column
// in a loop, it would be better to retrieve the column
// ordinal once, store the value, and use the methods
// of the DataTableReader class directly.
object columnValue;
try
{
int columnOrdinal = reader.GetOrdinal(columnName);
columnValue = reader.GetValue(columnOrdinal);
}
catch (ArgumentException ex)
{
// Throw all other errors back out to the caller.
columnValue = null;
}
return columnValue;
}
Private Function GetValueByName( _
ByVal reader As DataTableReader, _
ByVal columnName As String) As Object
' Consider when to use a procedure like this one carefully:
' If you're going to retrieve information from a column
' in a loop, it would be better to retrieve the column
' ordinal once, store the value, and use the methods
' of the DataTableReader class directly.
Dim columnValue As Object
Try
Dim columnOrdinal As Integer = reader.GetOrdinal(columnName)
columnValue = reader.GetValue(columnOrdinal)
Catch ex As ArgumentException
' Throw all other errors back out to the caller.
columnValue = Nothing
End Try
Return columnValue
End Function
Комментарии
Так как большинство методов, предоставляемых DataTableReader классом, должны быть предоставлены порядковый номер столбца, можно использовать GetOrdinal метод для получения номера столбца, учитывая имя столбца.
GetOrdinal сначала выполняет поиск с учетом регистра. При сбое выполняется второй поиск без учета регистра. Если номер столбца не найден ArgumentException , создается исключение.
GetOrdinal не учитывает ширину kana.
Так как порядковые подстановки более эффективны, чем именованные подстановки, неэффективны для вызова GetOrdinal в цикле. Сэкономить время, вызвав GetOrdinal один раз и назначив результаты целочисленной переменной для использования в цикле.