OdbcDataReader.GetOrdinal(String) 方法

定义

在给定列名时获取相应的列序号。Gets the column ordinal, given the name of the column.

public:
 override int GetOrdinal(System::String ^ value);
public:
 virtual int GetOrdinal(System::String ^ value);
public override int GetOrdinal (string value);
public int GetOrdinal (string value);
override this.GetOrdinal : string -> int
abstract member GetOrdinal : string -> int
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (value As String) As Integer
Public Function GetOrdinal (value As String) As Integer

参数

value
String

列的名称。The name of the column.

返回

从零开始的列序号。The zero-based column ordinal.

实现

示例

下面的示例演示如何使用 GetOrdinal 方法。The following example demonstrates how to use the 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. 如果找不到基于零的列序号,方法将引发 IndexOutOfRange 异常。The method throws an IndexOutOfRange exception if the zero-based column ordinal is not found.

GetOrdinal 不区分假名宽度。GetOrdinal is kana-width insensitive.

因为基于序号的查找比命名查找更高效,因此在循环内调用 GetOrdinal 效率低下。Because ordinal-based lookups are more efficient than named lookups, it is inefficient to call GetOrdinal within a loop. 相反,调用 GetOrdinal 一次,然后将结果分配给一个整数变量,以供在循环中使用。Instead, call GetOrdinal one time and then assign the results to an integer variable for use within the loop.

适用于

另请参阅