SqlDataReader.GetOrdinal(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene la posizione ordinale della colonna, dato il nome della colonna.
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
Parametri
- name
- String
Nome della colonna.
Restituisce
Ordinale di colonna in base zero.
Implementazioni
Eccezioni
Il nome specificato non è un nome di colonna valido.
Esempio
Nell'esempio seguente viene illustrato l'utilizzo del metodo GetOrdinal.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
ReadGetOrdinal(str);
}
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();
}
}
}
Commenti
GetOrdinal
esegue prima una ricerca con distinzione tra maiuscole e minuscole. Se ha esito negativo, viene eseguita una seconda ricerca senza distinzione tra maiuscole e minuscole (viene eseguito un confronto senza distinzione tra maiuscole e minuscole usando le regole di confronto del database). I risultati imprevisti possono verificarsi quando i confronti sono interessati da regole di maiuscole e minuscole specifiche delle impostazioni cultura. Ad esempio, in turco, l'esempio seguente restituisce i risultati sbagliati perché il file system in turco non usa regole di maiuscole e minuscole linguistiche per la lettera 'i' in "file". Il metodo genera un'eccezione IndexOutOfRange
se non viene trovato l'ordinale di colonna in base zero.
Il metodo GetOrdinal
non fa distinzione di larghezza dei caratteri kana.
Poiché le ricerche basate su valori ordinali sono più efficienti delle ricerche denominate, chiamare il metodo GetOrdinal
in un ciclo non è un'operazione efficiente. È possibile risparmiare tempo chiamando il metodo GetOrdinal
una volta e assegnando i risultati a una variabile di tipo Integer per l'uso nel ciclo.