SqlDataReader.GetOrdinal(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera porządkową kolumnę, podając nazwę kolumny.
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
Parametry
- name
- String
Nazwa kolumny.
Zwraca
Porządkowa kolumna oparta na zera.
Implementuje
Wyjątki
Określona nazwa nie jest prawidłową nazwą kolumny.
Przykłady
W poniższym przykładzie pokazano, jak używać GetOrdinal metody .
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();
}
}
}
Uwagi
GetOrdinal
najpierw wykonuje wyszukiwanie uwzględniające wielkość liter. W przypadku niepowodzenia następuje drugie wyszukiwanie bez uwzględniania wielkości liter (porównanie bez uwzględniania wielkości liter odbywa się przy użyciu sortowania bazy danych). Gdy na porównania wpływają reguły uwzględniające ustawienia kulturowe, mogą wystąpić nieoczekiwane rezultaty. Na przykład w języku tureckim poniższy przykład daje nieprawidłowe wyniki, ponieważ system plików w języku tureckim nie używa reguł liter literowych "i" w "file". Metoda zgłasza IndexOutOfRange
wyjątek, jeśli nie znaleziono porządkowej kolumny zero.
GetOrdinal
jest bez uwzględniania szerokości kana.
Ponieważ wyszukiwania oparte na porządkowi są bardziej wydajne niż nazwane odnośniki, jest nieefektywne wywołanie GetOrdinal
w pętli. Oszczędzaj czas, wywołując GetOrdinal
raz i przypisując wyniki do zmiennej całkowitej do użycia w pętli.