SqlDataReader.GetOrdinal(String) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
列の名前を指定して、列の序数を取得します。
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
列の名前。
戻り値
0 から始まる列序数。
実装
例外
指定された名前は、有効な列名ではありません。
例
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
は、まず大文字と小文字を区別して参照を実行します。 失敗した場合、2 つ目の大文字と小文字を区別しない検索が行われます (大文字と小文字を区別しない比較は、データベース照合順序を使用して行われます)。 比較がカルチャ固有の大文字と小文字の規則の影響を受けると、予期しない結果が発生する可能性があります。 たとえば、トルコ語では、トルコ語のファイル システムで "file" の文字 'i' に言語的な大文字と小文字の規則が使用されないため、次の例では間違った結果が生成されます。 0 から始まる列序数が見つからない場合、メソッドは例外をスロー IndexOutOfRange
します。
GetOrdinal
では、カタカナの全角と半角が区別されません。
序数に基づく参照は名前による参照よりも効率的であるため、ループ内で GetOrdinal
を呼び出すのは非効率的です。
GetOrdinal
を 1 回呼び出し、整数変数にその結果を代入してループ内で使用すると、時間を節約できます。
適用対象
こちらもご覧ください
.NET