C# DataRow.ItemArray プロパティ
DataRow.ItemArray プロパティ
配列を介してこの行のすべての値を取得または設定します。 ... タイプ
Condition
配列がテーブルの列数を超えています。
InvalidCastException
エディターが制約を破りました。 | |
エディターが読み取り専用列の値を変更しようとしました。 | |
编辑试图将空值放在 DataColumn 对象的 AllowDBNull 为 false 的列中。 |
|
DeletedRowInaccessibleException |
该行已被删除。 |
DataRow.ItemArray 属性源代码实现:
public object[] ItemArray { get { 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; } set { 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; } try { 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(); } }
以上就是C# DataRow.ItemArray 属性的内容,更多相关内容请关注PHP中文网(www.php.cn)!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。
