DataTableReader.GetOrdinal メソッド
アセンブリ: System.Data (system.data.dll 内)

Dim instance As DataTableReader Dim name As String Dim returnValue As Integer returnValue = instance.GetOrdinal(name)
- name
列の名前。
列の 0 から始まる序数。


DataTableReader クラスで使用できるメソッドのほとんどでは序数の列番号が必要なため、GetOrdinal メソッドを使用して、指定した名前の列の列番号を取得します。
GetOrdinal は、初めに大文字と小文字を区別して検索を実行します。それに失敗した場合は、大文字と小文字を区別せずに、2 回目の検索が実行されます。
GetOrdinal では、かなの全角と半角が区別されません。
序数ベースの検索は名前ベースの検索よりも効率的なため、ループ内で GetOrdinal を呼び出すことは非効率的です。GetOrdinal を 1 回呼び出し、ループ内で使用するために結果を整数の変数に割り当てることによって、時間を節約できます。

ユーザーが指定している列名のみ判明しているときに、その列の情報を取得する必要がある場合、次のようなプロシージャを使用することで必要な情報を抽出できます。この例では、プロシージャは列名を受け取り、DataTableReader 内でその列の現在の行に格納されているデータを返します。
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
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; }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- DataTableReader.GetOrdinal メソッドのページへのリンク