You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go项目中连接Microsoft Access数据库?求助库使用问题

在Go中使用Microsoft Access数据库及accessDBwE库的使用说明

首先明确:Go官方没有提供Microsoft Access的原生驱动,github.com/bennof/accessDBwE是基于ODBC的封装库,依赖系统的Access ODBC驱动才能运行,先确保你的Windows系统已经安装了对应版本的Access ODBC驱动(32位/64位要和你的Go程序编译位数匹配)。

基础使用步骤

  • 安装库:执行命令 go get github.com/bennof/accessDBwE
  • 连接数据库:
    可以通过ODBC DSN连接,或者直接用连接字符串(推荐,更灵活)。示例代码:
    package main
    
    import (
        "fmt"
        "github.com/bennof/accessDBwE"
    )
    
    func main() {
        // 直接用连接字符串连接,替换为你的Access文件路径
        connStr := `Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\path\to\your\database.accdb;`
        db, err := accessDBwE.Open(connStr)
        if err != nil {
            fmt.Println("连接失败:", err)
            return
        }
        defer db.Close()
    
        // 执行查询
        rows, err := db.Query("SELECT * FROM your_table")
        if err != nil {
            fmt.Println("查询失败:", err)
            return
        }
        defer rows.Close()
    
        // 处理查询结果
        cols, _ := rows.Columns()
        for rows.Next() {
            values := make([]interface{}, len(cols))
            valuePtrs := make([]interface{}, len(cols))
            for i := range values {
                valuePtrs[i] = &values[i]
            }
            rows.Scan(valuePtrs...)
            fmt.Println(values)
        }
    }
    

常见问题排查(针对无法正常使用的情况)

  • 驱动不匹配:如果你的Go程序是64位编译的,必须安装64位的Access ODBC驱动;32位程序对应32位驱动。可以在ODBC数据源管理器(注意区分32/64位,64位在控制面板,32位是C:\Windows\SysWOW64\odbcad32.exe)里查看是否有对应驱动。
  • 连接字符串错误:确认文件路径正确,Driver名称是否和系统里的一致(比如旧版本可能是{Microsoft Access Driver (*.mdb)})。
  • 权限问题:Access文件所在目录需要程序有读写权限,尤其是Windows下的系统目录、用户目录可能有权限限制。
  • 库版本兼容:检查accessDBwE的版本是否和你的Go版本兼容,建议拉取最新版本重新安装:go get -u github.com/bennof/accessDBwE

内容的提问来源于stack exchange,提问作者newbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 17:00:00