OleDbDataReader.GetOrdinal(String) 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在给定列名时获取相应的列序号。
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 -> intabstract member GetOrdinal : string -> int
override this.GetOrdinal : string -> intPublic Overrides Function GetOrdinal (name As String) As IntegerPublic Function GetOrdinal (name As String) As Integer参数
- name
- String
列的名称。
返回
从零开始的列序号。
实现
例外
指定的名称不是有效的列名。
示例
下面的示例演示如何使用 GetOrdinal 方法。
public static void ReadData(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM Orders";
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbCommand command = new OleDbCommand(queryString, connection);
        connection.Open();
        OleDbDataReader reader = command.ExecuteReader();
        int customerID = reader.GetOrdinal("CustomerID");
        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }
        reader.Close();
    }
}
Public Sub ReadData(ByVal connectionString As String)
    Dim queryString As String = "SELECT DISTINCT CustomerID FROM Orders"
    Using connection As New OleDbConnection(connectionString)
        Dim command As New OleDbCommand(queryString, connection)
        connection.Open()
        Dim reader As OleDbDataReader = command.ExecuteReader()
        Dim customerID As Integer = reader.GetOrdinal("CustomerID")
        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While
        reader.Close()
    End Using
End Sub
注解
              GetOrdinal 首先执行区分大小写的查找。 如果失败,则进行第二次不区分大小写的搜索。 如果未找到从零开始的列序号, 方法将 IndexOutOfRange 引发异常。
GetOrdinal 不区分假名宽度。
因为基于序号的查找比命名查找更高效,因此在循环内调用 GetOrdinal 效率低下。 通过调用 GetOrdinal 一次并将结果分配给整数变量以在循环中使用来节省时间。