DataRow.ItemArray プロパティ
配列を使用してこの行のすべての値を取得または設定します。
Public Property ItemArray As Object ()
[C#]
public object[] ItemArray {get; set;}
[C++]
public: __property Object* get_ItemArray();public: __property void set_ItemArray(Object* __gc[]);
[JScript]
public function get ItemArray() : Object[];
public function set ItemArray(Object[]);
プロパティ値
Object 型の配列。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | 配列がテーブルの列数を超えています。 |
InvalidCastException | 配列内の値が、各値の DataColumn 内の DataType と一致していません。 |
ConstraintException | 編集が制約に違反しています。 |
ReadOnlyException | 編集によって読み取り専用の列の値を変更しようとしています。 |
NoNullAllowedException | 編集によって、 DataColumn オブジェクトの AllowDBNull が false である列に null 値を入力しようとしています。 |
DeletedRowInaccessibleException | 行が削除されています。 |
解説
DataColumn に DefaultValue プロパティが設定されている場合は、配列で null 参照 (Visual Basic では Nothing) を渡して、その列に既定値を設定します。同様に、列の AutoIncrement プロパティが true に設定されている場合は、配列で null 参照 (Nothing) を渡して、その行に自動生成値を設定します。
ユーザーの操作によって ColumnChanging イベントまたは RowChanging イベントで例外が生成された場合は、例外が発生することがあります。
使用例
[Visual Basic, C#, C++] ItemArray プロパティを使用して値を取得および設定する方法を次の例に示します。
Private Sub CreateRowsWithItemArray()
' Make a DataTable using the function below.
Dim dt As DataTable = MakeTableWithAutoIncrement()
Dim dr As DataRow
' Declare the array variable.
Dim myArray(1) As Object
' Create 10 new rows and add to DataRowCollection.
Dim i As Integer
For i = 0 to 9
myArray(0) = DBNull.Value
myArray(1)= "item " & i.ToString()
dr = dt.NewRow()
dr.ItemArray = myArray
dt.Rows.Add(dr)
Next
PrintTable(dt)
End Sub
Private Function MakeTableWithAutoIncrement() As DataTable
' Make a table with one AutoIncrement column.
Dim myTable As DataTable = New DataTable("myTable")
Dim dcID As DataColumn = New DataColumn("id", Type.GetType("System.Int32"))
dcID.AutoIncrement = True
dcID.AutoIncrementSeed = 10
myTable.Columns.Add (dcID)
Dim dcFirstName As DataColumn = New DataColumn("Item", Type.GetType("System.String"))
myTable.Columns.Add(dcFirstName)
MakeTableWithAutoIncrement = myTable
End Function
Private Sub PrintTable(myTable As DataTable)
Dim myRow As DataRow
Dim myColumn As DataColumn
For Each myRow in myTable.Rows
For Each myColumn in myTable.Columns
Console.WriteLine(myRow(myColumn))
Next
Next
End Sub
[C#]
private void CreateRowsWithItemArray(){
// Make a DataTable using the function below.
DataTable dt = MakeTableWithAutoIncrement();
DataRow dr;
// Declare the array variable.
object [] myArray = new object[2];
// Create 10 new rows and add to DataRowCollection.
for(int i = 0; i <10; i++){
myArray[0]=null;
myArray[1]= "item " + i;
dr = dt.NewRow();
dr.ItemArray = myArray;
dt.Rows.Add(dr);
}
PrintTable(dt);
}
private DataTable MakeTableWithAutoIncrement(){
// Make a table with one AutoIncrement column.
DataTable myTable = new DataTable("myTable");
DataColumn dcID = new DataColumn("id", Type.GetType("System.Int32"));
dcID.AutoIncrement = true;
dcID.AutoIncrementSeed = 10;
myTable.Columns.Add(dcID);
DataColumn dcFirstName = new DataColumn("Item", Type.GetType("System.String"));
myTable.Columns.Add(dcFirstName);
return myTable;
}
private void PrintTable(DataTable myTable){
foreach(DataRow myRow in myTable.Rows){
foreach(DataColumn myColumn in myTable.Columns){
Console.WriteLine(myRow[myColumn]);
}
}
}
[C++]
private:
void CreateRowsWithItemArray(){
// Make a DataTable using the function below.
DataTable* dt = MakeTableWithAutoIncrement();
DataRow* dr;
// Declare the array variable.
Object* myArray[] = new Object*[2];
// Create 10 new rows and add to DataRowCollection.
for(int i = 0; i <10; i++){
myArray[0]=0;
myArray[1]= String::Format( S"item {0}", __box(i));
dr = dt->NewRow();
dr->ItemArray = myArray;
dt->Rows->Add(dr);
}
PrintTable(dt);
}
DataTable* MakeTableWithAutoIncrement(){
// Make a table with one AutoIncrement column.
DataTable* myTable = new DataTable(S"myTable");
DataColumn* dcID = new DataColumn(S"id", Type::GetType(S"System.Int32"));
dcID->AutoIncrement = true;
dcID->AutoIncrementSeed = 10;
myTable->Columns->Add(dcID);
DataColumn* dcFirstName = new DataColumn(S"Item", Type::GetType(S"System.String"));
myTable->Columns->Add(dcFirstName);
return myTable;
}
void PrintTable(DataTable* myTable){
System::Collections::IEnumerator* myEnum = myTable->Rows->GetEnumerator();
while (myEnum->MoveNext())
{
DataRow* myRow = __try_cast<DataRow*>(myEnum->Current);
System::Collections::IEnumerator* myEnum1 = myTable->Columns->GetEnumerator();
while (myEnum1->MoveNext())
{
DataColumn* myColumn = __try_cast<DataColumn*>(myEnum1->Current);
Console::WriteLine(myRow->Item[myColumn]);
}
}
}
[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 ファミリ, .NET Compact Framework - Windows CE .NET
参照
DataRow クラス | DataRow メンバ | System.Data 名前空間 | AcceptChanges | AutoIncrement | DataColumn