前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VB.NET MDB数据库导出到Excel表生成分析报表

VB.NET MDB数据库导出到Excel表生成分析报表

作者头像
一线编程
发布2023-03-02 13:27:50
1.4K0
发布2023-03-02 13:27:50
举报
文章被收录于专栏:办公魔盒办公魔盒

主要Access数据库连接代码:

代码语言:javascript
复制
Imports System.Data.OleDb

''' <summary>
''' 
''' 数据库连接类
''' 
''' Author:OuHuanHua
''' Date:2023/01/29
''' 
''' </summary>
Public Class Class_AccessDb
    ''' <summary>
    ''' 数据库连接对象
    ''' </summary>
    Private ReadOnly DbConnection As OleDbConnection

    ''' <summary>
    ''' 日志事件
    ''' </summary>
    ''' <param name="msg"></param>
    Public Event CmdLog(msg As String)

    ''' <summary>
    ''' 初始化类
    ''' </summary>
    ''' <param name="DbPath"></param>
    Public Sub New(DbPath As String)
        Dim database As String = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & DbPath
        DbConnection = New OleDbConnection(database)
        Try
            ''检测数据库状态
            If DbConnection.State.Equals(ConnectionState.Closed) Then
                DbConnection.Open()
            End If
        Catch ex As Exception
            RaiseEvent CmdLog("数据库初始化异常:" & ex.Message)
        End Try
    End Sub

    ''' <summary>
    ''' 查询数据并返回DataTable对象
    ''' </summary>
    ''' <param name="SqlStr">sql语句</param>
    ''' <returns></returns>
    Public Function ExecuteDataTable(SqlStr As String) As DataTable
        Try
            ''-------再次判断数据库连接状态
            If DbConnection.State.Equals(ConnectionState.Closed) Then
                DbConnection.Open()
            End If
            ''--------查询数据
            Using CmdObject As New OleDbCommand With {
                                .CommandText = SqlStr,
                                .CommandType = CommandType.Text,
                                .Connection = DbConnection,
                                .CommandTimeout = 0
                              }
                Using AdpObject As New OleDbDataAdapter With {.SelectCommand = CmdObject}
                    Using Dt As New DataTable()
                        AdpObject.Fill(Dt)
                        CmdObject.Parameters.Clear()
                        Return Dt
                    End Using
                End Using
            End Using
        Catch ex As OleDbException
            RaiseEvent CmdLog("查询数据异常:" & ex.Message)
            Return Nothing
        End Try
    End Function

    ''' <summary>
    ''' 执行SQL指令语句
    ''' </summary>
    ''' <param name="SqlStr">sql语句</param>
    ''' <returns></returns>
    Public Function ExecuteNonQuery(SqlStr As String) As Integer
        Try
            ''-------再次判断数据库连接状态
            If DbConnection.State.Equals(ConnectionState.Closed) Then
                DbConnection.Open()
            End If
            ''--------执行指令
            Using CmdObject As New OleDbCommand With {
                          .CommandText = SqlStr,
                          .CommandType = CommandType.Text,
                          .Connection = DbConnection,
                          .CommandTimeout = 0
                        }
                Dim rows As Integer = CmdObject.ExecuteNonQuery()
                CmdObject.Parameters.Clear()
                Return rows
            End Using
        Catch ex As OleDbException
            RaiseEvent CmdLog("执行指令异常:" & ex.Message)
            Return 0
        End Try
    End Function

    ''' <summary>
    ''' 获取当前连接的mdb中的所有表名
    ''' </summary>
    ''' <returns></returns>
    Public Function GetTableNames() As List(Of String)
        Try
            ''-------再次判断数据库连接状态
            If DbConnection.State.Equals(ConnectionState.Closed) Then
                DbConnection.Open()
            End If
            ''-------获取表名
            Dim dt As DataTable = DbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
            Dim tableNameList As New List(Of String)
            For i As Integer = 0 To dt.Rows.Count - 1
                Dim tableName As String = dt.Rows(i)("TABLE_NAME").ToString()
                tableNameList.Add(tableName)
            Next
            Return tableNameList
        Catch ex As Exception
            RaiseEvent CmdLog("查询所有表名异常:" & ex.Message)
            Return Nothing
        End Try
    End Function

End Class
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 办公魔盒 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档