vb.net 自定义数据库链接类(Access)

自定义数据库链接类(Access)是链接Access数据库时使用的类。

补足:Application.StartupPath.ToString是指定生成.EXE文件的路径,把数据库和执行文件存放到一起时,不管安装后在什么路径都无需特定指定。

 

Imports System.Data.OleDb

 

 #Region "全局变量"

 

     Private mTimeout As Integer

     Private mDbConn As OleDbConnection

     Private mSqlConn As OleDbCommand                 'SQL执行

     Private sTblNm As String                         '存放数据的表名

     Private mbOpen As Boolean                        'DB链接判断用

     Private mDbReader As OleDbDataReader

     Private mDbTrans As OleDbTransaction

     Private mbTran As Boolean = False                'Transaction开始判断用

     Private sSqlStr As String                        'SQL

     Private mDbResult As DB_RESULT                   'EXECUTE方法的处理结果

     Private mDbConnStr As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath.ToString & _

                                    "/数据库名.mdb;Persist Security Info=False;Jet OLEDB:Database Password =密码"

 

     'DB返回值

     Public Enum DB_RESULT As Integer

         DB_OK

         DB_OPEN_NG

         DB_TRAN_NG

         DB_UNIQUE_NG

         DB_LOCK_NG

         DB_OTHER_NG

     End Enum

 

 #End Region

 

 #Region "属性"

     ''' <summary>

     ''' SQL

     ''' </summary>

     ''' <value>SQL</value>

     ''' <remarks></remarks>

     Public WriteOnly Property SqlCmd() As String

         Set(ByVal value As String)

             Me.sSqlStr = value

         End Set

     End Property

 

     ''' <summary>

     ''' 表名

     ''' </summary>

     ''' <value>表名</value>

     ''' <remarks></remarks>

     Public WriteOnly Property TblNm() As String

         Set(ByVal value As String)

             Me.sTblNm = value

         End Set

     End Property

 

 #End Region

 

     ''' <summary>

     ''' 数据库链接

     ''' </summary>

     ''' <remarks></remarks>

     Public Function OpenDB() As Boolean

 

         Try

             If Me.mbOpen Then

                 Return True

             End If

 

             If Me.mDbConn Is Nothing Then

                 Me.mDbConn = New System.Data.OleDb.OleDbConnection

                 Me.mDbConn.ConnectionString = Me.mDbConnStr

             End If

 

             '数据库链接开始

             mDbConn.Open()

             Me.mbOpen = True

 

             CommLog.WriteLine("数据库链接成功")

 

             Return True

         Catch ex As Exception

             mDbConnStr = ""

             If Not mDbConn Is Nothing Then

                 mDbConn = Nothing

             End If

             CommLog.WriteLine("数据库链接失败")

             CloseDB()

             Return False

         End Try

     End Function

 

     ''' <summary>

     ''' Transaction开始

     ''' </summary>

     ''' <returns></returns>

     ''' <remarks></remarks>

     Public Function BeginTran() As Boolean

 

         Try

            

             If Me.mbTran Then

                 Return True

             End If

 

             Me.mDbTrans = Me.mDbConn.BeginTransaction

             Me.mbTran = True

 

             CommLog.WriteLine("Transaction开始")

 

             Return True

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

             Return False

         End Try

     End Function

 

     ''' <summary>

     ''' Commit

     ''' </summary>

     ''' <returns></returns>

     ''' <remarks></remarks>

     Public Function CommitTran() As Boolean

         Try

 

             If Not mbOpen OrElse Not mbTran Then

                 Return False

             End If

 

             mDbTrans.Commit()

             mDbTrans.Dispose()

             mDbTrans = Nothing

             mbTran = False

 

             CommLog.WriteLine("Commit")

 

             Return True

 

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

             Return False

         End Try

     End Function

 

     ''' <summary>

     ''' Rollback

     ''' </summary>

     ''' <returns></returns>

     ''' <remarks></remarks>

     Public Function RollbackTran() As Boolean

         Try

 

             If Not mbOpen OrElse Not mbTran Then

                 Return False

             End If

 

             mDbTrans.Rollback()

             mDbTrans.Dispose()

             mDbTrans = Nothing

             mbTran = False

 

             CommLog.WriteLine("Rollback")

 

             Return True

 

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

             Return False

         End Try

     End Function

 

     ''' <summary>

     ''' 数据库断开

     ''' </summary>

     ''' <remarks></remarks>

     Public Sub CloseDB()

 

         Try

             If Not mbOpen Then

                 Return

             End If

 

             If mbOpen AndAlso mbTran Then

                 mDbTrans.Rollback()

                 mDbTrans.Dispose()

                 mDbTrans = Nothing

                 mbTran = False

             End If

 

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

         End Try

 

         Try

             If mDbConn.State = ConnectionState.Open Then

                 mDbConn.Close()

             End If

 

             CommLog.WriteLine("数据库断开")

 

             mbOpen = False

 

             mDbConn.Dispose()

             mDbConn = Nothing

 

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

         End Try

 

     End Sub

 

 #Region "SQL文执行"

 

     ''' <summary>

     ''' Execute

     ''' </summary>

     ''' <returns>执行的行数</returns>

     ''' <remarks></remarks>

     Public Function Execute() As Integer

         Dim iAffected As Integer

 

         Try

 

             iAffected = -1

 

             Me.mDbResult = DB_RESULT.DB_OK

 

             mSqlConn = Me.mDbConn.CreateCommand

             mSqlConn.Transaction = mDbTrans

             mSqlConn.CommandText = Me.sSqlStr

 

             CommLog.WriteLine(Me.sSqlStr)

 

             iAffected = mSqlConn.ExecuteNonQuery()

 

             Return iAffected

 

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

            Return -1

         Finally

             If Not mSqlConn Is Nothing Then

                 mSqlConn.Dispose()

                 mSqlConn = Nothing

             End If

         End Try

     End Function

 

     ''' <summary>

     ''' SELECT文执行(DataSet)

     ''' </summary>

     ''' <returns>检索结果</returns>

     ''' <remarks></remarks>

     Public Function GetDataSet() As DataSet

         Dim ds As New DataSet

         Dim objODA As OleDbDataAdapter

 

         Try

             mSqlConn = Me.mDbConn.CreateCommand

             mSqlConn.CommandText = sSqlStr

             objODA = New OleDbDataAdapter(mSqlConn)

             CommLog.WriteLine(sSqlStr)

 

             objODA.Fill(ds, Me.sTblNm)

 

             mSqlConn.Dispose()

         Catch ex As Exception

             CommLog.WriteLine(ex.ToString)

         End Try

         Return ds

     End Function

 #End Region

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值