SqlDataReader.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:
virtual int GetOrdinal(System::String ^ name);
public override int GetOrdinal (string name);
public int GetOrdinal (string name);
override this.GetOrdinal : string -> int
abstract member GetOrdinal : string -> int
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (name As String) As Integer
Public Function GetOrdinal (name As String) As Integer
Paramètres
- name
- String
Nom de la colonne.
Retours
Numéro de colonne de base zéro.
Implémente
Exceptions
Le nom spécifié n'est pas un nom de colonne valide.
Exemples
L'exemple suivant décrit comment utiliser la méthode GetOrdinal.
private static void ReadGetOrdinal(string connectionString)
{
string queryString = "SELECT DISTINCT CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call GetOrdinal and assign value to variable.
int customerID = reader.GetOrdinal("CustomerID");
// Use variable with GetString inside of loop.
while (reader.Read())
{
Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
}
// Call Close when done reading.
reader.Close();
}
}
Private Sub ReadGetOrdinal(ByVal connectionString As String)
Dim queryString As String = _
"SELECT DISTINCT CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call GetOrdinal and assign value to variable.
Dim customerID As Integer = reader.GetOrdinal("CustomerID")
' Use variable with GetString inside of loop.
While reader.Read()
Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Remarques
GetOrdinal
effectue d’abord une recherche respectant la casse. En cas d’échec, une deuxième recherche sans respect de la casse se produit (une comparaison sans respect de la casse est effectuée à l’aide du classement de base de données). Des résultats inattendus peuvent se produire lorsque les comparaisons sont affectées par des règles de casse spécifiques à la culture. Par exemple, en turc, l’exemple suivant donne des résultats incorrects, car le système de fichiers en turc n’utilise pas de règles de casse linguistique pour la lettre « i » dans « file ». La méthode lève une IndexOutOfRange
exception si l’ordinal de colonne de base zéro est introuvable.
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 fois et en affectant les résultats à une variable de type « integer » à utiliser dans la boucle.