- - PR -
複数フォームからのConnectionの共有
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-09 11:26
1年半ほどC#で社内用の簡単なソフトを作っているのですが、
なかなか自分が成長したとは思えない今日この頃です。。。 ところで、Windowアプリで複数フォームで構成されたものを作るのですが、 いつも各フォームにConnectionを作り、dataAdapterを作り、dataSetを作り(ウィザードを使って作っています)・・・ という作業を繰り返しています。 これで、十分に動くのですが、フォームA、B、CではConnection_SとConnection_Tを使うような状況があり、 これらを各フォームではなく一括してどこかに記述するようなスマートな方法が取れないか模索しています。 どのような方法を使うのが一般的なのでしょうか? | ||||
|
投稿日時: 2006-05-09 11:47
若輩者ながら私の使う方法としては、
メインとなるフォーム(もしくはDB接続専用のクラス)で PublicでConnectionのインスタンスを作成。 それを他のフォームから参照してSQLの結果を受け取るという方法を取りますね。 #私はコードで書くほうが好きなので #あんまりウィザードを使って作ることが無かったりしますねぇ。 | ||||
|
投稿日時: 2006-05-09 11:54
ウィザードを使うのをやめる方法でも良いでしょうか?
一般的かどうかは分かりませんが、
みたいにインスタンスは各メソッド内のスコープにし、Connection は共通化しないです。 共通化するのは接続文字列等だけですね。 # 私もウィザードは一切使いません。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-05-09 12:04
なせさん、回答ありがとうございます。
私はきっと上をいく若輩者です。(^^; まだまだ、C#の概念というのでしょうか、言葉に馴染めずにいます。 自分が作っているものがインスタンスなのかどうか・・・ メインとなるフォーム上でConnectionのインスタンスを作成して・・・ となりますと、他のフォームから参照する際には、 ウィザードでのdataAdapterの作成を行うことができない(?)ので、 コードで記述することになる。 という認識でよろしいでしょうか? それとも好みの範疇でしょうか? | ||||
|
投稿日時: 2006-05-09 12:15
囚人さん、回答ありがとうございます。
サンプルコードもありがとうございます。 ただ、私のレベルでは理解できないようです。 実際にテストソフトを作ってみながら、理解しようと思います。 技術評論社から出ている本を参考に、今までは組んできたのですが、 DBから単にSelectしてくる機会が多く、リレーションも、VisualStudio内で設定できるので、 ウィザードを使い続けてきました。 コードで書くのは、Selectする際にパラメータを必要とするときだけ。 やはりコードを使ったほうが自由度は高いのですね。 | ||||
|
投稿日時: 2006-05-09 12:31
囚人さんの意見に大賛成で、その都度コネクションを確立すべきです。
もし、トランザクションが跨るのであれば、引数で渡すようにします。 プログラム間レベルで跨るのであれば、設計を見直す必要があるでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-05-09 13:58
んーインスタンス。。。
言葉で説明するのはすっごい苦手ですが。 当該のものを参照できるのであれば、インスタンスは作成されています。 って感じかなw 他フォームからの参照の際 ウィザードで他のフォームのdataAdapterの参照はできるかどうかはわかりかねますが。 基本的にはコードで書くことになりますね〜。 たぶんに囚人さんの各フォームでインスタンスを持つほうがスマートっぽいです。 フォーム間でトランザクションの跨りがある場合面倒になる可能性もありますね^^; #ちなみに囚人さんのサンプルは全然難しいことはしてませんよ。 #ただ、コネクション、アダプタ、SQLコマンドのインスタンスを作ってるだけですよ〜 | ||||
|
投稿日時: 2006-05-09 14:16
以前は、起動時に接続してこれを使い回ししていたんですが、DataSet を使うこと
が主流になってからは、都度、接続するのが一般的みたいですね。 まあ、考えてみれば当然ですが・・・ なので僕も深く考えずに、必要に応じてこまめに接続してますが、接続処理自身に負 荷がかかったりしないんでしょうか? |
1|2|3|4
次のページへ»