SqlDataReader.GetOrdinal(String) 方法

定義

提供資料行的名稱,取得資料行序數。

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 -> int
abstract member GetOrdinal : string -> int
override this.GetOrdinal : string -> int
Public Overrides Function GetOrdinal (name As String) As Integer
Public Function GetOrdinal (name As String) As Integer

參數

name
String

資料行名稱。

傳回

以零為基底的資料行序數。

實作

例外狀況

指定的名稱不是有效的資料行名稱。

範例

下列範例示範如何使用 GetOrdinal 方法。

private static void ReadGetOrdinal(string connectionString)
{
    string queryString = "SELECT DISTINCT CustomerID FROM dbo.Orders;";
    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call GetOrdinal and assign value to variable.
        int customerID = reader.GetOrdinal("CustomerID");

        // Use variable with GetString inside of loop.
        while (reader.Read())
        {
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID));
        }

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

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        ' Call GetOrdinal and assign value to variable.
        Dim customerID As Integer = reader.GetOrdinal("CustomerID")

        ' Use variable with GetString inside of loop.
        While reader.Read()
            Console.WriteLine("CustomerID={0}", reader.GetString(customerID))
        End While

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

備註

GetOrdinal 會先執行區分大小寫的查閱。 如果失敗,就會發生第二個不區分大小寫的搜尋, (使用資料庫定序) 進行不區分大小寫的比較。 當比較受到文化特性特定大小寫規則影響時,可能會發生非預期的結果。 例如,在土耳其文中,下列範例會產生錯誤的結果,因為土耳其文中的文件系統不會對 “file” 中的字母 'i' 使用語言大小寫規則。 如果找不到以零起始的數據行序數,此方法會 IndexOutOfRange 擲回例外狀況。

GetOrdinal 不區分假名寬度。

因為根據序數進行查閱比具名查閱更有效率,所以在迴圈內呼叫 GetOrdinal 的效率不佳。 呼叫一次 GetOrdinal 以節省時間,並將結果指派給迴圈內的整數變數使用。

適用於

另請參閱