DataRow.Item プロパティ (Int32, DataRowVersion)
列に格納されている、取得するデータのインデックスとバージョンで指定したデータを取得します。
[C#] C# では、このプロパティは DataRow クラスのインデクサになります。
Overloads Public Default ReadOnly Property Item( _
ByVal columnIndex As Integer, _ ByVal version As DataRowVersion _) As Object
[C#]
public object this[intcolumnIndex,DataRowVersionversion] {get;}
[C++]
public: __property Object* get_Item(intcolumnIndex,DataRowVersionversion);
[JScript]
returnValue = DataRowObject.Item(columnIndex, version);またはreturnValue = DataRowObject(columnIndex, version);
[JScript] JScript では、この型で定義されている既定のインデックス プロパティを使用することができます。しかし、独自のインデックス プロパティを明示的に定義することはできません。ただし、このクラスの expando 属性を指定すると、既定のインデックス プロパティが提供されます。提供されるインデックス プロパティの型は Object 型であり、インデックス型は String になります。
引数 [JScript]
- columnIndex
列の 0 から始まるインデックス番号。 - version
必要な行のバージョンを指定する DataRowVersion 値の 1 つ。可能な値は、Default、Original、Current、および Proposed です。
パラメータ [Visual Basic, C#, C++]
- columnIndex
列の 0 から始まるインデックス番号。 - version
必要な行のバージョンを指定する DataRowVersion 値の 1 つ。可能な値は、Default、Original、Current、および Proposed です。
プロパティ値
データを格納している Object 。
例外
例外の種類 | 条件 |
---|---|
IndexOutOfRangeException | 引数 columnIndex が範囲外です。 |
InvalidCastException | 列と値のデータ型が一致しません。 |
VersionNotFoundException | このバージョンのデータが行にありません。 |
DeletedRowInaccessibleException | 削除した行に値を設定しようとしました。 |
解説
行を作成または更新するには、その前に BeginEdit メソッドを呼び出す必要があります。同様に、編集をコミットするには、その前に EndEdit メソッドを呼び出す必要があります。 EndEdit メソッドを呼び出してから AcceptChanges メソッドを呼び出すまでの間に、元の値と提示した新しい値の内部処理形式が格納されます。このため、 AcceptChanges を呼び出すまでは、引数 version を使用して、列の値の必要なバージョン (DataRowVersion.Original または DataRowVersion.Proposed) を指定できます。ただし、 AcceptChanges メソッドを呼び出した後は、列のバージョンが DataRowVersion.Original に戻ります。新しく作成した行の場合は、このパラメータに DataRowVersion.Default を渡して、列の既定値も取得できます。 DataRowVersion.Current を渡すと、このプロパティはバージョンに関係なく現在の値を返します。
メモ データ連結コントロールの値を変更するか、 DataRow オブジェクトを DataRowCollection に追加すると、 BeginEdit メソッドが暗黙的に呼び出されます。 DataRow オブジェクトの AcceptChanges メソッド、 DataTable オブジェクトの AcceptChanges メソッド、または CancelEdit メソッドを呼び出すと、 EndEdit メソッドが暗黙的に呼び出されます。
これに対して、 DataRowVersion 列挙体 Current は、 EndEdit メソッドが呼び出された後で、データのバージョンを返します。
引数 version は、 RowState プロパティとは異なります。引数 version は、列の元の値を基準にして、列に格納されているデータの状態を表します。 RowState プロパティは、親 DataTable を基準にして、行全体の状態を表します。
プロパティを設定するときに、 ColumnChanging イベントで例外が発生すると例外が生成されます。
直前の編集の場合、生成される可能性がある例外については EndEdit のトピックを参照してください。
使用例
[Visual Basic] DataRow オブジェクトの Item プロパティを使用して、列の現在の値を取得する例を次に示します。
Private Sub DataGrid1_Click _
(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim currRow As DataRow
' Set the current row using the RowNumber property of the CurrentCell.
currRow = CType(DataGrid1.DataSource, DataTable). _
Rows(DataGrid1.CurrentCell.RowNumber)
' Get the value of the column 1 in the DataTable.
label1.Text = currRow(1, DataRowVersion.Current).ToString()
End Sub
[C#, C++, JScript] C#、C++、および JScript のサンプルはありません。Visual Basic のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: 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 オーバーロードの一覧