DataRow.Delete() メソッドが呼び出される場合、対応する行の RowState プロパティは DataRowState.Deleted に設定されます。行のステータスが DataRowState.Deleted の場合、通常の状況ではこの行にアクセスできません。削除された元のデータを取得する必要がある場合は、そのエントリ プロパティのオーバーロードされたメソッドを使用して、DataRowVersion.Original パラメーターを渡すことができます。
コードは次のとおりです:
if (typedDataRow.RowState == DataRowState.Deleted) id = (string)typedDataRow["CustomerID", DataRowVersion.Original];
datatable.Rows[i].Delete() を使用して行を削除するか、DataGrid で Del キーを押して行を削除してからテーブルにアクセスします。削除された行を介してアクセスしました。」というエラーが表示されます。理由は次のとおりです。
Delete() の後、完全な削除を確認するには datatable.AccepteChanges() メソッドが必要です。これは、Delete() は対応する列のステータスを削除済みとしてマークするだけであり、datatable を通じてロールバックすることもできるためです。 .RejectChanges() を使用して行の削除を取り消します。
したがって、 datarow を完全に削除したい場合は、 Delete() メソッドと AccepteChanges() メソッドを同時に使用するか、 datatable.Rows.RemoveAt(i) メソッドを使用して を直接削除する必要があります。 i は行インデックスを表し、もう 1 つはデータテーブルです。 Rows.Remove(DataRow dr) は指定された行を削除します。
ただし、datatable.Rows.RemoveAt(i) を使用する場合、datatable.Rows.RemoveAt(0); datatable.Rows.RemoveAt(1); を連続して使用すると、元の行 0 と 1 は削除されないことに注意してください。ただし、0 行を削除すると、元の 1 行は 0 行になるため、datatable.Rows.RemoveAt(1) は実際には元のテーブルの 2 行を削除します。現時点では i = i - 1;
したがって、datatable.Rows.RemoveAt(i) は注意して使用する必要があります
注:
行バージョン (DataRowVersion)
行 (DataRow) オブジェクトには 4 つの異なる行がありますバージョン 、それぞれ、現在、オリジナル、提案、デフォルト。これらの行バージョンについて簡単に説明します。
現在: 行の現在の値を示します。削除された状態の行には行のバージョンが存在しません。
Original: 行の元の値を表します。追加済み状態の行バージョンは存在しません
提案済み: 行の推奨値を示します。この行バージョンは、テーブルに属していない行、つまり分離状態の行に対して存在します。この行バージョンは、編集中の行に対しても存在します。
デフォルト: 行のデフォルトのバージョンを表します。追加、変更、または変更されていない状態の行のデフォルトの行バージョンは最新であり、削除された状態の行のデフォルトの行バージョンはオリジナルです。分離状態の行のデフォルト バージョンが提案されます。
上記は C# Table.Rows[index].Delete() の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

C#と.NETランタイムは密接に連携して、開発者に効率的で強力なプラットフォームの開発機能に力を与えます。 1)C#は、.NETフレームワークとシームレスに統合するように設計されたタイプセーフおよびオブジェクト指向のプログラミング言語です。 2).NETランタイムは、C#コードの実行を管理し、ガベージコレクション、タイプの安全性、その他のサービスを提供し、効率的でクロスプラットフォームの操作を保証します。

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
