|
分類:[C#]
分類:[C#]
環境: WindowxXP SP2 VS2005 Oracle10g
.NET2.0 から導入されたTransactionScopeを利用してトランザクション処理を行おうとしましたが、 oramts.dllが見つかりませんとエラーが出てしまいました。 Oracle Services for Microsoft Transaction Serverはインストールしているのに。。。
というわけでこれはあきらめて従来のように手動でトランザクション処理を実装しようとしました。 例えば以下のようにです。
_myTableAdapter.Connection.Open() OracleTransaction transaction = _myTableAdapter.Connection.BeginTransaction(); try { _myTableAdapter.Update(_myTable); transaction.Commit(); } catch { transaction.RollBack(); }
しかし、この場合、以下のようなエラーが出てしまいました。 "Execute が実行されるには、Command オブジェクトに割り当てられた Connection オブジェクトが、保留されているローカル トランザクションで保持されている場合は、Command オブジェクトに Transaction オブジェクトが割り当てられている必要があります。Command オブジェクトの Transaction プロパティは初期化されていません。"
というわけで、CommandオブジェクトにTransaction設定するかあと思いましたが、TableAdapterからCommandオブジェクトに手が届きません。 どのようにCommandオブジェクトを取得すれば良いのでしょうか?
もちろん、先に述べたエラーが他の手法で解決できるならばそれに越したことはないです。 また、やり方がまちがっているという意見でもいいのでどうぞよろしくお願いします。
|