zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C# DataRow.ItemArray 属性

2023-09-14 09:03:15 时间
通过一个数组来获取或设置此行的所有值。
命名空间:System.Data

程序集:System.Data(在 system.data.dll 中)

代码示例:

private void CreateRowsWithItemArray()

 // Make a DataTable using the function below.

 DataTable dt = MakeTableWithAutoIncrement();

 DataRow relation;

 // Declare the array variable.

 object [] rowArray = new object[2];

 // Create 10 new rows and add to DataRowCollection.

 for(int i = 0; i i++)

 rowArray[0]=null;

 rowArray[1]= "item " + i;

 relation = dt.NewRow();

 relation.ItemArray = rowArray;

 dt.Rows.Add(relation);

 PrintTable(dt);

private DataTable MakeTableWithAutoIncrement()

 // Make a table with one AutoIncrement column.

 DataTable table = new DataTable("table");

 DataColumn idColumn = new DataColumn("id", 

 Type.GetType("System.Int32"));

 idColumn.AutoIncrement = true;

 idColumn.AutoIncrementSeed = 10;

 table.Columns.Add(idColumn);

 DataColumn firstNameColumn = new DataColumn("Item", 

 Type.GetType("System.String"));

 table.Columns.Add(firstNameColumn);

 return table;

private void PrintTable(DataTable table)

 foreach(DataRow row in table.Rows)

 foreach(DataColumn column in table.Columns)

 Console.WriteLine(row[column]);

}
异常:


int defaultRecord = this.GetDefaultRecord(); object[] array = new object[this._columns.Count]; for (int i = 0; i array.Length; i++) DataColumn dataColumn = this._columns[i]; array[i] = dataColumn[defaultRecord]; return array; if (value == null) throw ExceptionBuilder.ArgumentNull("ItemArray"); if (this._columns.Count value.Length) throw ExceptionBuilder.ValueArrayLength(); DataColumnChangeEventArgs dataColumnChangeEventArgs = null; if (this._table.NeedColumnChangeEvents) dataColumnChangeEventArgs = new DataColumnChangeEventArgs(this); bool flag = this.BeginEditInternal(); for (int i = 0; i value.Length; i++) if (value[i] != null) DataColumn dataColumn = this._columns[i]; if (-1L != this.rowID dataColumn.ReadOnly) throw ExceptionBuilder.ReadOnly(dataColumn.ColumnName); if (dataColumnChangeEventArgs != null) dataColumnChangeEventArgs.InitializeColumnChangeEvent(dataColumn, value[i]); this._table.OnColumnChanging(dataColumnChangeEventArgs); if (dataColumn.Table != this._table) throw ExceptionBuilder.ColumnNotInTheTable(dataColumn.ColumnName, this._table.TableName); if (-1L != this.rowID dataColumn.ReadOnly) throw ExceptionBuilder.ReadOnly(dataColumn.ColumnName); if (this.tempRecord == -1) this.BeginEditInternal(); object obj = (dataColumnChangeEventArgs != null) ? dataColumnChangeEventArgs.ProposedValue : value[i]; if (obj == null) if (dataColumn.IsValueType) throw ExceptionBuilder.CannotSetToNull(dataColumn); obj = DBNull.Value; int proposedRecordNo = this.GetProposedRecordNo(); dataColumn[proposedRecordNo] = obj; catch (Exception e) if (ADP.IsCatchableOrSecurityExceptionType(e) flag) this.CancelEdit(); throw; this.LastChangedColumn = dataColumn; if (dataColumnChangeEventArgs != null) this._table.OnColumnChanged(dataColumnChangeEventArgs); this.EndEdit(); }