DataTableReader.GetOrdinal(String) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the column ordinal, given the name of the column.
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
Parameters
- name
- String
The name of the column.
Returns
The zero-based column ordinal.
Exceptions
An attempt was made to read or access a column in a closed DataTableReader.
The name specified is not a valid column name.
Examples
If you have only a column name, in which case the column name is user supplied, and you must retrieve information from the column, you can use a procedure like the following to extract the required information. In this example, the procedure accepts a column name and returns the data that is contained within that column for the current row in the 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
Remarks
Because most of the methods provided by the DataTableReader class must be provided with an ordinal column number, you can use the GetOrdinal
method to retrieve the column number, given the name of the column.
GetOrdinal
performs a case-sensitive lookup first. If it fails, a second case-insensitive search is made. If the column number is not found an IndexOutOfRangeException
is thrown.
GetOrdinal
is kana-width insensitive.
Because ordinal-based lookups are more efficient than named lookups, it is inefficient to call GetOrdinal
within a loop. Save time by calling GetOrdinal
one time and assigning the results to an integer variable for use within the loop