DataTableReader.Item[] プロパティ

定義

指定した列の値をネイティブ形式で取得します。

オーバーロード

名前 説明
Item[Int32]

列の序数を指定して、指定した列の値をネイティブ形式で取得します。

Item[String]

列名を指定して、指定した列の値をネイティブ形式で取得します。

Item[Int32]

列の序数を指定して、指定した列の値をネイティブ形式で取得します。

public:
 virtual property System::Object ^ default[int] { System::Object ^ get(int ordinal); };
public override object this[int ordinal] { get; }
member this.Item(int) : obj
Default Public Overrides ReadOnly Property Item(ordinal As Integer) As Object

パラメーター

ordinal
Int32

0 から始まる列の序数。

プロパティ値

指定した列のネイティブ形式の値。

例外

渡されたインデックスが 0 から FieldCount - 1 の範囲外でした。

次の使用例は、指定された DataTableReaderのすべての行に、すべての列の内容を表示します。 このコードでは、Item[] メソッド (Microsoft C# のインデクサー) を使用して、各列に含まれる値を取得します。

private static void DisplayItems(DataTableReader reader)
{
    int rowNumber = 0;
    while (reader.Read())
    {
        Console.WriteLine("Row " + rowNumber);
        for (int i = 0; i < reader.FieldCount; i++)
        {
            Console.WriteLine("{0}: {1}", reader.GetName(i), reader[i]);
        }
        rowNumber++;
    }
}
Private Sub DisplayItems(ByVal reader As DataTableReader)
   Dim rowNumber As Integer
   While reader.Read()
      Console.WriteLine("Row " & rowNumber)
      For i As Integer = 0 To reader.FieldCount - 1
         Console.WriteLine("{0}: {1}", reader.GetName(i), reader.Item(i))
      Next
      rowNumber += 1
   End While
End Sub

注釈

Item[]のこのオーバーロードは、GetValue メソッドと同じように動作します。

こちらもご覧ください

適用対象

Item[String]

列名を指定して、指定した列の値をネイティブ形式で取得します。

public:
 virtual property System::Object ^ default[System::String ^] { System::Object ^ get(System::String ^ name); };
public override object this[string name] { get; }
member this.Item(string) : obj
Default Public Overrides ReadOnly Property Item(name As String) As Object

パラメーター

name
String

列の名前。

プロパティ値

指定した列のネイティブ形式の値。

例外

指定された名前が有効な列名ではありません。

削除された行からデータを取得しようとしました。

閉じた DataTableReader内の列の読み取りまたはアクセスが試行されました。

DataTableReaderと列名を指定すると、GetValueByName プロシージャは指定した列の値を返します。 このプロシージャを呼び出す前に、新しい DataTableReader インスタンスを作成し、その Read メソッドを少なくとも 1 回呼び出して、行ポインターをデータ行に配置する必要があります。

private static object GetValueByName(
    DataTableReader reader, string columnName)
{
    // Consider when to use a procedure like this one carefully:
    // if  you're going to retrieve information from a column
    // in a loop, it would be better to retrieve the column
    // ordinal once, store the value, and use the methods
    // of the DataTableReader class directly.
    // Use this string-based indexer sparingly.
    object columnValue = null;

    try
    {
        columnValue = reader[columnName];
    }
    catch (ArgumentException ex)
    {
        // Throw all other errors back out to the caller.
        columnValue = null;
    }
    return columnValue;
}
Private Function GetValueByName( _
   ByVal reader As DataTableReader, _
   ByVal columnName As String) As Object

   ' Consider when to use a procedure like this one carefully:
   ' If you're going to retrieve information from a column
   ' in a loop, it would be better to retrieve the column
   ' ordinal once, store the value, and use the methods
   ' of the DataTableReader class directly. 
   ' Use Item(columnName) sparingly.
   Dim columnValue As Object

   Try
      columnValue = reader.Item(columnName)
   Catch ex As ArgumentException
      ' Throw all other errors back out to the caller.
      columnValue = Nothing
   End Try
   Return columnValue
End Function

注釈

大文字と小文字を区別する検索が最初に実行されます。 失敗した場合は、大文字と小文字を区別しない 2 つ目の検索が行われます。

このメソッドは、かな幅を区別しません。

このオーバーロードされたバージョンの Item[] は、 GetOrdinal メソッドの呼び出しに対応し、その後、 GetValue メソッドを呼び出します。

適用対象