VB.NET中用连接密码打开Access数据库及解决打开失败问题
在VB.NET中用密码打开Access数据库的正确姿势
你的问题核心是连接字符串里的密码参数没正确配置,再加上可能对Access驱动版本的注意事项没到位,导致连接失败。下面一步步帮你解决:
先搞清楚用哪个OLEDB驱动
Access的驱动分两种,别搞混了:
- 如果你用的是Access 2003及更早的
.mdb文件,用Microsoft.Jet.OLEDB.4.0驱动 - 要是Access 2007及以上(不管是
.mdb还是.accdb),优先用Microsoft.ACE.OLEDB.12.0或者16.0版本的ACE驱动——Jet驱动已经停更了,ACE驱动兼容性更好
修正连接字符串是关键
你原来的代码里Jet OLEDB:Database Password="""";这部分是空的,根本没填入你设置的密码1234,这肯定连不上啊!
针对.mdb文件(Jet驱动)的正确连接字符串
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SecGrd\SecGrd.mdb;Jet OLEDB:Database Password=1234;"
针对.accdb文件(ACE驱动)的正确连接字符串
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\SecGrd\SecGrd.accdb;Jet OLEDB:Database Password=1234;"
给你完整的可运行示例代码
把连接逻辑封装好,加上错误处理,避免踩坑:
Imports System.Data.OleDb ' 在你的方法里写这段代码 Dim dbConnection As New OleDbConnection() Try ' 替换成你对应的驱动和路径 dbConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SecGrd\SecGrd.mdb;Jet OLEDB:Database Password=1234;" dbConnection.Open() Console.WriteLine("数据库连接成功!") ' 这里写你的数据库操作逻辑,比如查询、插入等 Catch ex As OleDbException Console.WriteLine("数据库连接出错:" & ex.Message) Catch ex As Exception Console.WriteLine("其他错误:" & ex.Message) Finally ' 不管成功失败,记得关闭连接 If dbConnection.State = ConnectionState.Open Then dbConnection.Close() End If End Try
几个容易踩的坑要注意
- 驱动不匹配:如果用ACE驱动,必须安装对应版本的Microsoft Access数据库引擎,而且要和你的VB.NET项目平台(32位/64位)一致——项目是32位就装32位引擎,64位同理,不然会报“找不到Provider”的错误。
- 路径写错:检查
Data Source里的文件路径,VB.NET里可以用@"C:\SecGrd\SecGrd.mdb"这种原始字符串,避免转义字符出错。 - 密码大小写:Jet驱动的密码不区分大小写,但ACE驱动的密码是区分大小写的,所以要和你设置的密码完全一致。
- 文件权限:如果数据库放在C盘根目录或者系统文件夹里,你的程序可能需要管理员权限才能访问,右键程序选择“以管理员身份运行”试试。
内容的提问来源于stack exchange,提问作者mohammad abufadda
相关产品推荐
相关产品推荐

