- Kazuki
- ぬし
- 会議室デビュー日: 2004/10/13
- 投稿数: 298
|
投稿日時: 2006-09-04 19:28
確かに、ほとんど意味無さそうですね。
後は、本題とは関係ないですが皆が見る場に書くコードは
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpgenref/html/cpconnamingguidelines.asp
に従った方が吉です。
.NETの名前付けガイドラインです。
|
- なおこ(・∀・)
- 大ベテラン
- 会議室デビュー日: 2004/04/08
- 投稿数: 174
- お住まい・勤務地: 東京都
|
投稿日時: 2006-09-04 19:46
お世話になります。
あまり意味がないと思うに一票です。
というか、もともとどこでコネクションを管理したいのかが見えません。
もしコネクションの Open Close を外部でやりたくないのであれば、
こんなやり方もあろうかと思います。
clsDR クラス の Get_DR メソッド内で
ExecuteReader するときに、CommandBehavior.CloseConnection を渡してやる。
そして、
呼び出し元で DataReader を Finally ブロック等で Close してやる。
_________________ なおこ(・∀・) @ わんくま同盟
主婦と.NETと犬の記録
主婦と.NETと犬のぶろぐ
|
- モンジ
- ベテラン
- 会議室デビュー日: 2005/09/06
- 投稿数: 85
|
投稿日時: 2006-09-05 10:05
皆様、レスありがとうございます。
かるあさん、確かにクラス化する必要が無いですね。
Kazukiさん、今まで何も気にせずにコードを書いていました。恥ずかしいです。
さて、皆様のアドバイスもあり、
DB接続のクラスを作成し、再度、コーディングしてみました。
コード: |
|
クラス側
Public Class DB
'メンバ変数
Private oCn As New OracleConnection
Public Property Get_Cn()
Get
Return oCn
End Get
Set(ByVal Value)
oCn = Value
End Set
End Property
Public Sub New()
oCn.ConnectionString = "接続文字列"
End Sub
End Class
|
コード: |
|
呼び出し側
Dim DR As OracleDataReader
Dim strSQL As String = _
"SQL文"
'クラスのインスタンス化
Dim DBC As New DB
DBC.Get_Cn.open()
Dim oCmd As New OracleCommand(strSQL, DBC.Get_Cn)
DR = oCmd.ExecuteReader()
DRを操作
DBC.Get_Cn.close()
|
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-09-05 10:24
引用: |
|
モンジさんの書き込み (2006-09-05 10:05) より:
DBC.Get_Cn.open()
|
せっかくラップしているのですから、ConnectionOpen メソッドを提供した方が安全だと思うのですが...
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- R・田中一郎
- ぬし
- 会議室デビュー日: 2005/11/03
- 投稿数: 979
|
投稿日時: 2006-09-05 10:24
僕は、こんな感じで書けるようにするのが大好きです。
コード: |
|
呼び出し側
Dim DR As OracleDataReader
Using (DBC As New でえたべえすいろいろ)
DR = DBC.ReaderGet("SQL文")
あれこれやる・・・
End Using
*VBてこんなんであってるん?
|
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-09-05 10:33
引用: |
|
R・田中一郎さんの書き込み (2006-09-05 10:24) より:
Using (DBC As New でえたべえすいろいろ)
*VBてこんなんであってるん?
|
括弧でくくるとコンパイル エラーですね。
コード: |
|
Using oRTanakaIchiro As New RTanakaIchiro("...")
' :
End Using 'Dispose here!
Using oPrincePopi As PrincePopi = New PrincePopi("...")
' :
End Using 'Dispose here!
|
が、正解です。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- うにくま
- ベテラン
- 会議室デビュー日: 2005/11/05
- 投稿数: 82
|
投稿日時: 2006-09-05 11:05
VBではUsingステートメントは使用できません、C#のみ使用できます。
モンジさんはVB2003で開発していると記述されているので、
もし、VB2005での例を示すのであれば、
その旨を明記しないと混乱されると思いますよ?
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-09-05 11:35
引用: |
|
うにくまさんの書き込み (2006-09-05 11:05) より:
モンジさんはVB2003で開発していると記述されているので、
もし、VB2005での例を示すのであれば、
その旨を明記しないと混乱されると思いますよ?
|
失礼しました。
単に引用返答していたので、気付きませんでした。
Using ステートメントは VB8 で使用可能ですが、VB7.1 以前の場合は以下のようになります。
コード: |
|
Dim oRTanakaIchiro As RTanakaIchiro = Nothing
Try
oRTanakaIchiro = New RTanakaIchiro("...")
Finally
If Not oRTanakaIchiro Is Nothing Then
DirectCast(oRTanakaIchiro, System.IDisposable).Dispose()
End If
End Try
|
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|