DataTableReader.GetOrdinal(String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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