OracleDataReader.GetOrdinal(String) 方法

定义

获取列序号,给定列的名称。

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

参数

name
String

列的名称。

返回

从零开始的列序号。

实现

示例

以下示例演示如何使用 GetOrdinal 该方法。

Public Sub ReadOracleData(ByVal connectionString As String)

    Dim queryString As String = "SELECT OrderID, CustomerID FROM Orders"
    Dim connection As New OracleConnection(connectionString)
    Dim command As New OracleCommand(queryString, connectionString)

    connection.Open()

    Dim reader As OracleDataReader = command.ExecuteReader()

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

    Do While reader.Read()
        Console.WriteLine("CustomerID = {0}", reader.GetString(custIdCol))
    Loop

    reader.Close()
    connection.Close()
End Sub
public void ReadOracleData(string connectionString)
{
    string queryString = "SELECT OrderID, CustomerID FROM Orders";
    OracleConnection connection = new OracleConnection(connectionString);
    OracleCommand command = new OracleCommand(queryString,connection);

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

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

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

    reader.Close();
    connection.Close();
}

注解

GetOrdinal 首先执行区分大小写的查找。 如果失败,则会进行第二次不区分大小写的搜索。 如果未找到从零开始的列序号,该方法将 IndexOutOfRange 引发异常。

GetOrdinal 不区分假名宽度。

由于基于序号的查找比命名查找更高效,因此在循环中调用 GetOrdinal 效率低下。 而是调用 GetOrdinal 一次,然后将结果分配给一个整数变量,以便在循环中使用。

适用于