IDataRecord.GetOrdinal(String) 方法

定义

返回已命名字段的索引。Return the index of the named field.

public:
 int GetOrdinal(System::String ^ name);
public int GetOrdinal (string name);
abstract member GetOrdinal : string -> int
Public Function GetOrdinal (name As String) As Integer

参数

name
String

要查找的字段的名称。The name of the field to find.

返回

Int32

已命名字段的索引。The index of the named field.

示例

下面的示例演示如何使用继承的 GetOrdinal 方法。The following example demonstrates how to use the inherited GetOrdinal method.

public static void ReadData(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM Orders";

    using (OdbcConnection connection = new OdbcConnection(connectionString))
    {
        OdbcCommand command = new OdbcCommand(queryString, connection);

        connection.Open();
        OdbcDataReader reader = command.ExecuteReader();

        int customerID = reader.GetOrdinal("CustomerID");

        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }

        // Call Close when done reading.
        reader.Close();
    }
}
Public Sub ReadData(ByVal connectionString As String)
    Dim queryString As String = "SELECT DISTINCT CustomerID FROM Orders"

    Using connection As New OdbcConnection(connectionString)
        Dim command As New OdbcCommand(queryString, connection)

        connection.Open()

        Dim reader As OdbcDataReader = command.ExecuteReader()

        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

注解

GetOrdinal 首先执行区分大小写的查找。GetOrdinal performs a case-sensitive lookup first. 如果失败,将进行第二个不区分大小写的搜索。If it fails, a second case-insensitive search is made. GetOrdinal 不区分假名宽度。GetOrdinal is kana-width insensitive. 如果找不到命名字段的索引, IndexOutOfRangeException 则会引发。If the index of the named field is not found, an IndexOutOfRangeException is thrown.

因为基于序号的查找比命名查找更高效,因此在循环内调用 GetOrdinal 效率低下。Because ordinal-based lookups are more efficient than named lookups, it is inefficient to call GetOrdinal within a loop. 通过调用 GetOrdinal 一次,并将结果分配给整数变量以便在循环中使用,从而节省时间。Save time by calling GetOrdinal one time and assigning the results to an integer variable for use within the loop.

适用于