- PR -

DB接続用のクラスの作成について

1
投稿者投稿内容
チャチャ
常連さん
会議室デビュー日: 2003/10/13
投稿数: 42
投稿日時: 2006-07-13 13:48
いつもお世話になります。
現在、VB.NETでWebアプリの開発をしている初心者です。
DBの接続用の共通クラス(clsDB)を作って、各フォームの
イベントからDBクラスをNEWして、クラス中のDB接続関数を
コールして使いまわしているのです。

このような構築は問題がないでしょうか?
特に、複数ユーザが同時にアクセスするとき。

ぜひ、ご教授を頂きたいと願います。

********webform*******

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim clsDBInfo As New clsDB
Dim SQL As String="select * from dbtable "
Dim DBReader As OracleClient.OracleDataReader

Try
'****** データベースへ接続 *****
If clsDBInfo.DBOpen() = False Then
Exit Function
End If

'***** データリーダを作成 *****
If clsDBInfo.DBReader(SQL, DBReader) = False Then
Exit Function
End If

'***** DataReaderを読込む *****
Do While DBReader.Read
'
  Loop

Catch ex As Exception
'エラー処理
Finally
'****** DB切断******
Call clsDBInfo.fncDBRedClose(DBReader)
Call clsDBInfo.fncSqlClose()
End Try
END Sub

********CLASS***********
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Imports System.Configuration

Public Class clsDB
Public Conn As OracleClient.OracleConnection
Public Trans As OracleClient.OracleTransaction
'DBオーブン
Public Function DBOpen() As Boolean
Dim strConn As String
Try
DBOpen = False
'*****Web.configファイルからDB接続情報を取得*****
strConn = ConfigurationSettings.AppSettings.Item("DBConnectionString")
Conn = New OracleClient.OracleConnection
Conn.ConnectionString = strConn
Conn.Open()
DBOpen = True
Catch ex As Exception
  'エラー処理
DBOpen = False
End Try
End Function

'DB切断
Public Sub DBClose()
Try
If Not Conn Is Nothing Then
Conn.Close()
Conn.Dispose()
Conn = Nothing
End If
Catch ex As Exception
'エラー処理
End Try
End Sub
'DataReaderクローズ
Public Sub DrClose(ByRef DBReader As OracleClient.OracleDataReader)
Try
If Not DBReader Is Nothing Then
DBReader.Close()
DBReader = Nothing
End If
Catch ex As Exception
'エラー処理
End Try

End Sub
'DBデータを読込む
Public Function DBReader(ByVal PstrSQL As String, _
ByRef PSqlDataReader As OracleClient.OracleDataReader) As Boolean
Dim SqlCmd As OracleClient.OracleCommand

Try
DBReader = False
SqlCmd = New OracleClient.OracleCommand
'*****sql文の実行*****
With SqlCmd
.Connection = Conn
.CommandText = PstrSQL
.CommandType = CommandType.Text
End With
PSqlDataReader = SqlCmd.ExecuteReader
fncSqlDataReader = True
Catch ex As Exception
'エラー処理
SqlCmd = Nothing
DBReader = False
Finally
SqlCmd = Nothing
End Try
End Function
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-07-13 14:20
引用:

チャチャさんの書き込み (2006-07-13 13:48) より:
いつもお世話になります。
現在、VB.NETでWebアプリの開発をしている初心者です。
DBの接続用の共通クラス(clsDB)を作って、各フォームの
イベントからDBクラスをNEWして、クラス中のDB接続関数を
コールして使いまわしているのです。

このような構築は問題がないでしょうか?
特に、複数ユーザが同時にアクセスするとき。


いわゆるラッパークラスってやつですな。
で排他関係は別の概念なので関係ないでしょ。

しかしメソッドの名前とか戻り値とかちょっといけてないかもね。
チャチャ
常連さん
会議室デビュー日: 2003/10/13
投稿数: 42
投稿日時: 2006-07-13 15:11
引用:

ぶさいくろうさんの書き込み (2006-07-13 14:20) より:
いわゆるラッパークラスってやつですな。
で排他関係は別の概念なので関係ないでしょ。

しかしメソッドの名前とか戻り値とかちょっといけてないかもね。



DBクラスは問題がないようで安心しました。
関数名や戻り値の名称を見直します。
ご返事がありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)