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á řadový sloupec vzhledem k názvu sloupce.
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
Parametry
- name
- String
Název sloupce
Návraty
Řadový sloupec založený na nule.
Implementuje
Výjimky
Zadaný název není platný název sloupce.
Příklady
Následující příklad ukazuje, jak použít metodu 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
Poznámky
GetOrdinal
nejprve provede vyhledávání s rozlišováním velkých a malých písmen. Pokud selže, dojde k druhému hledání bez rozlišování velkých a malých písmen (porovnání nerozlišující malá a malá písmena 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ísmeno "i" v souboru. Metoda vyvolá výjimku IndexOutOfRange
, pokud není nalezena pořadová řada sloupců založená na nule.
GetOrdinal
není kana-width necitlivý.
Vzhledem k tomu, že vyhledávání na základě řad jsou efektivnější než pojmenovaná vyhledávání, je neefektivní volat GetOrdinal
v rámci smyčky. Ušetřete čas tím, že jednou zavoláte GetOrdinal
a přiřadíte výsledky k celočíselné proměnné pro použití ve smyčce.