私はADO.Netを学んでいます。私はこの行を読みました:-
DataReader は「接続された」アプローチであり、データセットは「切断された」アプローチです
この文から、データ リーダーではデータベースへの接続を確立する必要があるが、データセットではデータベースへの接続を確立する必要がないという結論に達しました。
しかし、接続を確立せずにデータにアクセスする方法.私は正確な意味を理解していないことを知っています.
例を挙げて正確な意味を教えてください。
データベースからデータを取得してアクセスするために最後まで接続を維持しなければならないADO.netアーキテクチャは、接続アーキテクチャと呼ばれます。コネクテッド アーキテクチャはconnection
、 、command
、datareader
データベースからデータを取得するまでの間だけ接続を開いたままにし、後でデータベースへの接続を閉じてもアクセスできるようにする ADO.net アーキテクチャは、切断型アーキテクチャと呼ばれます。ADO.net の非接続アーキテクチャは、 、 、および の型に基づいて構築さconnection
れdataadapter
てcommandbuilder
いdataset
ますdataview
。
DataSetをメモリデータベースのように考えてください。DataTablesが含まれ、テーブルデータ(Selectクエリに基づくデータのすべてまたはサブセット)が含まれ、テーブル間の関係も維持されます。更新/削除操作を実行できるDataSetでは、DataAdapterオブジェクトを介してデータベースに同期されます。したがって、データを表示するために、データベースに接続する必要はありません。DataReaderとして常にデータベースに接続する必要があります。これは、データを表示するときに常にデータベースに接続する必要があります。
従来のADOでは、RecordSet
オブジェクトは接続モードと切断モードの両方で機能します。Ado.Netには、これらの各シナリオに対応するために使用できる2つの異なるタイプがありますIDataReader
。DataSet
接続モード:結果セットの順方向のみのストリームをトラバースしている間、基になるデータソースに接続されたままになります。
切断モード:取得された結果セットはメモリに保持され、トラバーサルのためにDBへの接続は不要になります。
このMSDNの記事では、2つのオブジェクトをさらに比較し、ここで説明できるよりもはるかに優れた個々のメリットについて説明しています。
コネクテッド アーキテクチャ: すべてのリクエストに対して、データベースにヒットし、データをフェッチして戻す。読み取り操作のみを実行できます。接続は常に開いている必要があります。データ リーダーを使用します
Dis Connected Architecture : データ全体を一度にフェッチし、実行したい操作を実行します。挿入/更新/削除。接続が常にOPENである必要はありません。データセット、データアダプタを使用します
接続アーキテクチャ:接続モデルでは、任意のアプリケーションをデータベースに接続でき、データベース操作を使用していない場合でもデータベース システムに接続されたままになります。このアーキテクチャではConnection
、Command
とを使用しDataReader
ます。
非接続アーキテクチャ:非接続モデルでは、close メソッドを呼び出すまでアプリケーションをデータベースに接続します。このアーキテクチャでは、 と を使用DataSet
しDataAdapter
ます。