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
сначала выполняет поиск с учетом регистра. В случае сбоя выполняется второй поиск без учета регистра. Если номер столбца не найден IndexOutOfRangeException
, возникает исключение .
Метод GetOrdinal
не учитывает ширину японской азбуки.
Поиск по порядковым числительным более эффективен, чем поиск по имени, поэтому не рекомендуется использовать метод GetOrdinal
в цикле. Экономьте время, вызывая GetOrdinal
один раз и назначая результаты целочисленной переменной для использования в цикле