プログラマーとシステムエンジニアのスキルアップサイトIT全般の知識・技術向上のための情報と、システム開発・設計に役立つコンテンツを提供。トラックバック(0)最近仕事でC#をメインで使うようになってきたので。新しいこともいろいろと習得中です。今まではどんな言語を使うにしろ、トランザクション処理では、トランザクションの開始と、コミット、そして例外時にはロールバックと明示的に記述していた。Framework2.0ではもう少し簡単に書けるようになった、System.Transaction.TransactionScopeクラスが用意されている。TransactionScope.Complete()メソッドが呼ばれるとコミットされ、TransactionScope.Dispose()メソッドが呼ばれるとロールバックされる仕組みとのこと。usingステートメントと組み合わせて、以下のように書ける。{//SQLによるデータベース更新処理://コミットtran.Complete();}※例外が発生したり、Complete()メソッドを呼び出さずに、usingステートメントを抜けると自動的にロールバックされる。クラスには自動的にコネクションや、SqlCommandクラスを検出する機能があるため、今までのように明示的にコネクションやSqlCommandのインスタンスとトランザクションのインスタンスを結びつける必要が無くなっているのもポイント。トラックバック(0)ADO.netADO.netでは、従来のADOと違い新しいアーキテクチャでのデータアクセスが採用されている。データソースとの接続に使用されるデータプロバイダ、非接続時でのデータアクセスを可能にするデータセットが用意されている。充填)し、非接続のアクセスを可能にするというイメージとなる。接続型データアクセス1.Connectionオブジェクトにて、データソースとの接続を確立2.Commandオブジェクトにてテーブルデータの取得、SQLステートメントの実行、プロシージャの呼び出しをおこなう。3.DataReaderオブジェクトにて結果セットからデータを取得する(結果セットの取得は順方向のみ可能)※この仕様によりパフォーマンスを上げることが可能になる。4.必要に応じTransactionオブジェクトにてトランザクション制御をおこなう。非接続型データアクセス※1?2:接続型データアクセスと同様(データソースから結果セットを取得)1.Connectionオブジェクトにて、データソースとの接続を確立2.Commandオブジェクトにてテーブルデータの取得、SQLステートメントの実行、プロシージャの呼び出しをおこなう。3.非接続アクセスをおこなうため、DataAdapterオブジェクトを作成する。4.DataAdapterオブジェクトにてデータソースから取得した結果セットを、非接続操作が可能な、Datasetオブジェクトに格納(充填)する。※DataAdapter.Fillメソッドを使用する。5.非接続にてデータの操作をした後、DataAdapter.Updateメソッドにて更新された情報をデータソースへ反映させることが可能。データアクセスデータアクセスは上記のとおり各オブジェクトを用いておこなうが、データソース(データベース)の種類に応じ各オブジェクトを使い分ける。※プログラミングモデルは共通のため同じコーディング方法にてデータアクセスが可能。同様に、xxxCommand、xxxDataAdapter、xxxTransactionオブジェクトを使い分ける。