SqlDataReader.GetOrdinal(String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供資料行的名稱,取得資料行序數。
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
以節省時間,並將結果指派給迴圈內的整數變數使用。