- - PR -
【ASP.NET】連続するデータベースアクセス処理の記述方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-03-31 14:23
ASP.NET(VB.NET)で開発しています。
1画面に DataGrid と 金額集計表示用の Label が貼り付けてあります。 DataGrid の「追加」や「更新」ボタンが押された時に、それ相応(Insert や Update)の処理を行ない、最新の集計金額を検索(Select)し、表示するようにしています。 このような場合、SQL文を2回発行することになるのですが、記述方法に悩んでいます。どのような記述方法が良いのか教えていただけますでしょうか? 1.Try でくくる。 Try 更新処理 Try 検索処理 Finally 後処理 End Try Finally 後処理 End Try 2.別々の Try で記述。 Try 更新処理 Finally 後処理 End Try Try 検索処理 Finally 後処理 End Try 3.もっと別の方法 理由も教えていただけると助かります。よろしくお願い致します。 | ||||||||||||
|
投稿日時: 2006-03-31 14:45
別々のファンクションあるいはプロシージャーでやるのが,よいのでは
理由は後から使いまわしや流用ができるからです。 なおかつ プログラムがわかり易いからです。 | ||||||||||||
|
投稿日時: 2006-03-31 14:53
僕も、味唐辛子さんと同じような意見ですが
このように書けるとわかりやすいですよね。 そうなると自ずと、別に分ける方が分かりやすいのだと思われます。 | ||||||||||||
|
投稿日時: 2006-03-31 15:03
七味唐辛子さん、お返事ありがとうございます。
なるほど。私もその方法は考えたのですが、更新時(Update)に値をパラメータ渡しにしており、画面によってパラメータ数がバラバラになります。 パラメータ渡し方法 lo_Command.Parameters.Add("Koumoku", Oracle.DataAccess.Client.OracleDbType.Varchar2).Value = txtKoumoku.Text これをどのように設計すれば良いのか分からなかったため、現状、上から下への古めかしい処理になってしまっています。 また、検索時には DataReader を使用しているのですが、Reader で取得した値をどのように返そうか(呼び先から呼び元へ)・・・ うん?! この場合は、ArrayList で返せばいけるかな。検索するテーブルの取得項目数が異なるのがネックだったのですが。 | ||||||||||||
|
投稿日時: 2006-03-31 15:10
私ならDataAdapterを使用してDataTableで返しちゃいますが… DataAdapterは使うな!というルールなのでしょうか? | ||||||||||||
|
投稿日時: 2006-03-31 15:21
もいっこ。
私ならこうします。 Try 接続 更新 検索 コミット Catch ロールバック Catchした例外を含むApplicationExceptionをThrow Finally 切断 End Try 理由は、1回の接続・切断ですむから。 | ||||||||||||
|
投稿日時: 2006-03-31 15:23
いいえ。そのようなルールは特にありません。私が DataAdapter や DataTable の使い方を知らないだけで(^_^;) ありがとうございます。ちょっと調べてみます。
そうですね。私も更新処理と検索処理をファンクションに切り出した方がいいな、と考えております。 あとは、パラメータ渡しをどうするかなのですが何かしらの方法があるんですよね。 更新処理とパラメータを受け取る処理を分ければ出来そうですが、その場合、パラメータを受け取る処理が複数になってしまいますが、そういうのは設計上あり、なんでしょうか? | ||||||||||||
|
投稿日時: 2006-03-31 16:06
別スレでごちゃごちゃやっていたら、出遅れました。
using と try 〜 finally パターン + トランザクションで考えれば良いのでしょうか? 臨機応変ではありますが、連続が確定しているのであれば、
でしょうね。 場合によっては、更新メソッドでも例外機構をつけることがあります。 そのままスローな場合は何もしません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |