- - PR -
データベース用クラスを作りたいのですが
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-20 10:51
毎回、データベースへの接続情報記述しないで なおかつ、接続開始を1回だけにしようと思い いままで作ってきたクラスを参考に、 以下のようなクラス作成を考えてみました windowsフォーム上で、Dim cdb As New dbとしての 利用は可能なのですが、他のフォームでも同じように 宣言しなおさないといけません。 できるなら、最初のフォームでデータベースを接続状態に しておいて、あとどのフォームでも利用したいのですが 具体的にどのようにすればよいのでしょうか? やはり、フォーム単位で接続をopen/closeしたほうが よろしいのでしょうか? ------------------------------------------------- Public Class db Private m_cn As OdbcConnection Public Property cn() As OdbcConnection Get Return m_cn End Get Set(ByVal Value As OdbcConnection) m_cn = Value End Set End Property Public Sub New() cn = New OdbcConnection cn.ConnectionString = _ "DRIVER={MySQL ODBC 3.51 Driver};" & _ "SERVER=localhost;" & _ "PORT=3306;" & _ "DATABASE=sgdb;" & _ "UID=user;" & _ "PASSWORD=password;" & _ "STMT=SET CHARACTER SET SJIS;" & _ "OPTION=3" cn.Open() End Sub End Class | ||||||||
|
投稿日時: 2005-11-20 11:14
使っていない時は閉じておきましょう。 コネクション プーリングについても調べてみてください。 作るならば、ラッパークラス程度が良いと考えています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-11-21 08:44
じゃんぬねっとさん、お世話になりました。
ラッパクラスについて検索してみたのですが まだよく理解できず・・・ 結局 windowsフォーム内で使い回す用にPrivateとして宣言し windowsフォームを閉じたらDisposeするようにしました 一点ほど解決できなかった問題がありました。 強引に解決したみたいな形なのですが。 マスタテーブルから名称を取得するクラスを作っていまして 次のようなソースです。 windowsフォーム内ですでに接続を開いているので利用できないかと思い 引数として渡すようにしてみたのですが。 やはりこういったケースでも、データベースの接続を 開いて閉じるというほうがいいのでしょうか? ------------------------------------------------------------------ Public Class db_code Public Shared Function get_kbnName(ByRef sKey As String, ByRef cn As OdbcConnection) As String Try Dim oCmd As OdbcCommand Dim oRd As OdbcDataReader Dim sqltxt As String = _ "SELECT field02 FROM code_table WHERE field01 = " & sKey oCmd = New OdbcCommand(sqltxt, cn) oRd = oCmd.ExecuteReader oRd.Read() Dim ret As String = oRd("field02") oRd.Close() oCmd.Dispose() Return ret Catch ex As Exception MessageBox.Show(ex.Message, "区分名取得エラー") End Try End Function End Class | ||||||||
|
投稿日時: 2005-11-21 09:37
ちょっと怖いですね。
呼び出し元で Finally で Close していれば動作的には問題ないと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1