次の方法で共有


DataRow.Item プロパティ (Int32)

インデックスで指定した列に格納されているデータを取得または設定します。

[C#] C# では、このプロパティは DataRow クラスのインデクサになります。

Overloads Public Default Property Item( _
   ByVal columnIndex As Integer _) As Object
[C#]
public object this[intcolumnIndex] {get; set;}
[C++]
public: __property Object* get_Item(intcolumnIndex);public: __property void set_Item(intcolumnIndex,   Object*);
[JScript]
returnValue = DataRowObject.Item(columnIndex);DataRowObject.Item(columnIndex) = returnValue;またはreturnValue = DataRowObject(columnIndex);DataRowObject(columnIndex) = returnValue;

[JScript] JScript では、この型で定義されている既定のインデックス プロパティを使用することができます。しかし、独自のインデックス プロパティを明示的に定義することはできません。ただし、このクラスの expando 属性を指定すると、既定のインデックス プロパティが提供されます。提供されるインデックス プロパティの型は Object 型であり、インデックス型は String になります。

引数 [JScript]

  • columnIndex
    列の 0 から始まるインデックス番号。

パラメータ [Visual Basic, C#, C++]

  • columnIndex
    列の 0 から始まるインデックス番号。

プロパティ値

データを格納している Object

例外

例外の種類 条件
DeletedRowInaccessibleException 削除した行に値を設定しようとしたときに発生します。
IndexOutOfRangeException 引数 columnIndex が範囲外です。
InvalidCastException 値と新しい値の Type の設定が DataType と一致していないときに発生します。

解説

プロパティを設定するときに、 ColumnChanging イベントで例外が発生すると例外が生成されます。

編集中に例外が発生した場合、生成されることがある例外については、 EndEdit のトピックを参照してください。

使用例

[Visual Basic, C#, C++] Item プロパティを使用して、指定した列インデックスの値を取得および設定する例を次に示します。最初の例では、ユーザーが DataGrid コントロールでクリックする行にある最初の列の値を取得します。

 
Private Sub DataGrid1_Click _
(ByVal sender As System.Object, ByVal e As System.EventArgs)
   Dim currRow As DataRow
   ' Get the DataTable the grid is bound to.
   Dim thisGrid As DataGrid = CType(sender, DataGrid)
   Dim myTable As DataTable = CType(thisGrid.DataSource, DataTable)
   currRow = myTable.Rows(thisGrid.CurrentCell.RowNumber)
   ' Get the value of the column 1 in the DataTable.
   Console.WriteLine(currRow(1))
   ' You can also use the name of the column:
   ' Console.WriteLine(currRow("FirstName"))
End Sub

Private Sub SetDataRowValue(ByVal myGrid As DataGrid, ByVal newValue As Object)
   ' Set the value of the last column in the last row of a DataGrid.
   Dim myTable As DataTable
   myTable = CType(mygrid.DataSource, DataTable)
   Dim myRow As DataRow 
   myRow = myTable.Rows(myTable.Rows.Count-1)
   myRow(myTable.Columns.Count-1) = newValue
End Sub

[C#] 
private void DataGrid1_Click(object sender, System.EventArgs e){
   DataRow currRow;
   // Get the DataTable the grid is bound to.
   DataGrid thisGrid = (DataGrid) sender;
   DataTable myTable = (DataTable) thisGrid.DataSource;
   currRow = myTable.Rows[thisGrid.CurrentCell.RowNumber];
   // Get the value of the column 1 in the DataTable.
   Console.WriteLine(currRow[1]);
   // You can also use the name of the column:
   // Console.WriteLine(currRow["FirstName"])
}

private void SetDataRowValue(DataGrid myGrid, object newValue){
   // Set the value of the last column in the last row of a DataGrid.
   DataTable myTable;
   myTable = (DataTable) myGrid.DataSource;
   DataRow myRow;
   // Get last row
   myRow = (DataRow)myTable.Rows[myTable.Rows.Count-1];
   // Set value of last column
   myRow[myTable.Columns.Count-1] = newValue;
}

[C++] 
private:
 void DataGrid1_Click(Object* sender, System::EventArgs* /*e*/){
    DataRow* currRow;
    // Get the DataTable the grid is bound to.
    DataGrid* thisGrid = dynamic_cast<DataGrid*> (sender);
    DataTable* myTable = dynamic_cast<DataTable*> (thisGrid->DataSource);
    currRow = myTable->Rows->Item[thisGrid->CurrentCell.RowNumber];
    // Get the value of the column 1 in the DataTable.
    Console::WriteLine(currRow->Item[1]);
    // You can also use the name of the column:
    // Console.WriteLine(currRow["FirstName"])
 }
 
 void SetDataRowValue(DataGrid* myGrid, Object* newValue){
    // Set the value of the last column in the last row of a DataGrid.
    DataTable* myTable;
    myTable = dynamic_cast<DataTable*> (myGrid->DataSource);
    DataRow* myRow;
    // Get last row
    myRow = dynamic_cast<DataRow*>(myTable->Rows->Item[myTable->Rows->Count-1]);
    // Set value of last column
    myRow->Item[myTable->Columns->Count-1] = newValue;
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

DataRow クラス | DataRow メンバ | System.Data 名前空間 | DataRow.Item オーバーロードの一覧