OracleDataReader.GetOrdinal(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在给定列名时获取相应的列序号。
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 一次,然后将结果分配给一个整数变量,以便在循环中使用。