Partager via


DataTableReader.GetOrdinal(String) Méthode

Définition

Obtient le numéro de la colonne, en fonction du nom de la colonne.

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

Paramètres

name
String

Nom de la colonne.

Retours

Numéro de colonne de base zéro.

Exceptions

Une tentative a été effectuée pour lire une colonne ou y accéder dans un DataTableReader fermé.

Le nom spécifié n'est pas un nom de colonne valide.

Exemples

Si vous n’avez qu’un nom de colonne, auquel cas le nom de colonne est fourni par l’utilisateur, et que vous devez récupérer des informations à partir de la colonne, vous pouvez utiliser une procédure comme celle-ci pour extraire les informations requises. Dans cet exemple, la procédure accepte un nom de colonne et retourne les données contenues dans cette colonne pour la ligne active dans :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

Remarques

Étant donné que la plupart des méthodes fournies par la DataTableReader classe doivent être fournies avec un numéro de colonne ordinal, vous pouvez utiliser la GetOrdinal méthode pour récupérer le numéro de colonne, en fonction du nom de la colonne.

GetOrdinal effectue d’abord une recherche respectant la casse. En cas d’échec, une deuxième recherche ne respectant pas la casse est effectuée. Si le numéro de colonne est introuvable, un IndexOutOfRangeException est levée.

GetOrdinal ne respecte pas la largeur du jeu de caractères kana.

Étant donné que les recherches basées sur un ordinal sont plus efficaces que les recherches basées sur un nom, il est inefficace d'appeler GetOrdinal dans une boucle. Gagnez du temps en appelant GetOrdinal une seule fois et en affectant les résultats à une variable entière à utiliser dans la boucle

S’applique à