- - PR -
ソースの書き方を教えてください
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-15 14:03
下記のソースコード(OraConn)についてお聞きしたいのですが
ページの最初にOraConnを宣言し、各処理で共通に使っています。 この場合、OraConnのインスタンスの生成から破棄まで 問題ないでしょうか。 (別ユーザでOraConnがバッティングするとか、自身でバッティングするとかです) まだC#初心者でまだよくわかってません。 よろしくお願いします。 public partial class frmMain : System.Web.UI.Page { private OracleConnection OraConn = new OracleConnection("コネクション文字列"); protected void Page_Load(object sender, EventArgs e) { OracleCommand cmd = OraConn.CreateCommand(); cmd.CommandText = "SQL文"; OracleDataReader objDr = cmd.ExecuteReader(); OraConn.Open(); OraConn.Close(); TestFunction(); } protected void TestFunction() { OracleCommand cmd = OraConn.CreateCommand(); cmd.CommandText = "SQL文"; OracleDataReader objDr = cmd.ExecuteReader(); OraConn.Open(); OraConn.Close(); } protected void cmdTest_Click(object sender, EventArgs e) { OracleCommand cmd = OraConn.CreateCommand(); cmd.CommandText = "SQL文"; OracleDataReader objDr = cmd.ExecuteReader(); OraConn.Open(); OraConn.Close(); } protected void Page_UnLoad(object sender, EventArgs e) { OraConn.Dispose(); } } [ メッセージ編集済み 編集者: 未記入 編集日時 2006-04-15 14:04 ] | ||||
|
投稿日時: 2006-04-15 14:12
別に問題はなさそうですが、以下のようにすると余計な心配はなくなるでしょう。
スコープは可能な限り狭く。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-04-15 15:16
どうもありがとうございます。
ソース自体には問題ないのですね。 コネクションのバッティングを気にしていましたので 安心しました。 | ||||
|
投稿日時: 2006-04-15 17:00
私は、問題が「全くない」とは思わないですけど... 未記入さんの元のコードはプライベート メンバですから。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-15 23:27
あれ?駄目かな。 確かに100%問題なし!と言えないけど、明確にココに問題あり!と言えないのが辛い…。 微妙に変な気持ちにはなりますね。 .NET2.0 になって、TransactionScope も使える事だし(まだあまりよく分からんが)、コネクションを使いまわす意味もあまりなくなったような気がするなぁ。 スコープを狭くする方にリファクタリングしたらどうですか?>未記入さん _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-04-16 01:32
まあ、もともとのコードでもコネクション「オブジェクト」を 使いまわしていることにはあまり意味はないですね。 元のコードで言えば、まあ確実にCloseされるようにするとかですかね。 質問者さんが気にしているような、バッティングとかの心配はないでしょう。 で、スコープとかややこしいこと気にするくらいならその場で作成したほうがいいでしょう。 後々トランザクションを共有するように変更するつもりなどがないのであれば、ですが。 あそうそう、気になるのはなんでOpenせずにリーダー使って、 その後でOpen、Closeしてるのか、ですね。 | ||||
|
投稿日時: 2006-04-16 09:24
ぉぉ、見てなかったですね...
DataAdapter ならまだしも、DataReader では動かないような。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1