共用方式為


SqlDataReader.GetOrdinal(String) 方法

定義

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

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

參數

name
String

資料行名稱。

傳回

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

實作

例外狀況

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

範例

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

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadGetOrdinal(str);
    }

    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();
        }
    }
}

備註

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

GetOrdinal 不區分假名寬度。

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

適用於