SqlDataReader.GetOrdinal(String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá pořadové číslo sloupce vzhledem k názvu sloupce.
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
Název sloupce
Návraty
Pořadové číslo sloupce založené na nule.
Implementuje
Výjimky
Zadaný název není platným názvem sloupce.
Příklady
Následující příklad ukazuje, jak použít metodu 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();
}
}
}
Poznámky
GetOrdinal
nejprve provede vyhledávání s rozlišováním velkých a malých písmen. Pokud se nezdaří, dojde k druhému hledání, které nerozlišuje malá a velká písmena (porovnání bez rozlišování malých a velkých písmen se provádí pomocí kolace databáze). Při porovnávání se zohledněním pravidel pro práci s malými a velkými písmeny specifickými pro jazykovou verzi může docházet k neočekávaným výsledkům. Například v turečtině následující příklad přináší nesprávné výsledky, protože systém souborů v turečtině nepoužívá jazyková pravidla pro písmena "i" v "souboru". Metoda vyvolá IndexOutOfRange
výjimku, pokud není nalezen řadový sloupec založený na nule.
GetOrdinal
je kana-šířka necitlivá.
Vzhledem k tomu, že vyhledávání podle pořadových čísel je efektivnější než pojmenované vyhledávání, je neefektivní volat GetOrdinal
ve smyčce. Ušetřete čas voláním GetOrdinal
jednou a přiřazením výsledků k celočíselné proměnné pro použití ve smyčce.