关于设计通用数据库类(.net)

本文介绍了一个用于不同数据库间连接的通用数据库连接类的设计与实现。该类基于 .NET Framework 的 System.Data.Common 命名空间,支持 SQL Server、OLE DB、ODBC 和 Oracle 数据库。通过枚举选择数据库类型,并使用 DbProviderFactory 创建数据库连接。

最近要在不同的数据库之间连接,所以写了一个通用的数据库连接类。现跟大家讨论和分享,希望给大家有点帮助,也能给我指点更好的设计方式。

 

''通用数据库工厂
Imports System.Data.Common
Imports System.Data.OracleClient

''' <summary>
        '''
        ''' 利用system.data.common中的dbproviderfactory、dbconnection、dbcommand、...等操作数据库
        ''' 通用数据库工厂
        ''' </summary>
        ''' <remarks></remarks>
        Public Class DbFactoryCommon
            Private Provider As DbProvider
            Private Factory As DbProviderFactory
            Private dbConnection As DbConnection
            Private dbCommand As DbCommand
            Private dbDataAdapter As DbDataAdapter
         Public Enum DbProvider
            SqlClient
            Oledb
            Odbc
            Oracle
          End Enum
            Public Property DatabaseProvider() As DbProvider
                Get
                    Return Me.Provider
                End Get
                Set(ByVal value As DbProvider)
                    BuildFactory()
                    Provider = value
                End Set
            End Property
            Public Property Connection() As DbConnection
                Get
                    Return Me.dbConnection
                End Get
                Set(ByVal value As DbConnection)
                    Me.dbConnection = value
                End Set
            End Property
            Public Property Command() As DbCommand
                Get
                    Return Me.dbCommand
                End Get
                Set(ByVal value As DbCommand)
                    Me.dbCommand = value
                End Set
            End Property
            Public Property DataAdapter() As DbDataAdapter
                Get
                    Return Me.dbDataAdapter
                End Get
                Set(ByVal value As DbDataAdapter)
                    Me.dbDataAdapter = value
                End Set
            End Property
            Public Sub New()

            End Sub
            Public Sub New(ByVal provider As DbProvider)
                BuildFactory()
            End Sub
            Private Sub BuildFactory()
                Select Case Provider
                    Case DbProvider.SqlClient
                        Factory = SqlClient.SqlClientFactory.Instance
                    Case DbProvider.Oledb
                        Factory = OleDb.OleDbFactory.Instance
                    Case DbProvider.Odbc
                        Factory = Odbc.OdbcFactory.Instance
                    Case DbProvider.Oracle
                        Factory = OracleClient.OracleClientFactory.Instance
                    Case Else
                        Factory = Nothing
                End Select
            End Sub

            Public Function getConnection() As DbConnection
                Dim Connection As DbConnection
                Try
                    Connection = Factory.CreateConnection()
                    Return Connection
                Catch ex As Exception
                    Throw ex
                End Try
            End Function

            Public Function getCommand() As DbCommand
                Dim Command As DbCommand
                Try
                    Command = Factory.CreateCommand()
                    Return Command
                Catch ex As Exception
                    Throw ex
                End Try
            End Function

            Public Function getDataAdapter() As DbDataAdapter
                Dim DataAdapter As DbDataAdapter
                Try
                    DataAdapter = Factory.CreateDataAdapter()
                    Return DataAdapter
                Catch ex As Exception
                    Throw ex
                End Try
            End Function

            Public Function getCommandBuild() As DbCommandBuilder
                Dim CommandBuilder As DbCommandBuilder
                Try
                    CommandBuilder = Factory.CreateCommandBuilder()
                    Return CommandBuilder
                Catch ex As Exception
                    Throw ex
                End Try
            End Function

        End Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值