您好,欢迎访问一九零五行业门户网

解决Access连接 accdb 不可识别的数据库格式异常

在access07之前的数据库后缀名均为*.mdb 而连接字符串写成 provider= microsoft.jet.oledb.4.0 ;data source=c:\myfolder\*. mdb ;persist security info=false; 但是access07和access10将后缀名改为了*.accdb。而通过上述连接的话就会报出不可识别的数据库
在access07之前的数据库后缀名均为*.mdb 而连接字符串写成provider=microsoft.jet.oledb.4.0;data source=c:\myfolder\*.mdb ;persist security info=false;
但是access07和access10将后缀名改为了*.accdb。而通过上述连接的话就会报出不可识别的数据库格式异常。
需要注意的是microsoft.jet.oledb.4.0的oledb的连接方式是比较老的连接方式,而07以后的oledb连接方式将改成microsoft.ace.oledb.12.0。
改后的连接变成了provider=microsoft.ace.oledb.12.0;data source=c:\myfolder\*.accdb;persist security info=false;
送给新手的一个小窍门:
在asp.net中经常把连接字符串写在web.config中。但是access的连接字符串是需要数据库的绝对位置。即 盘符:/文件夹/文件 这样就导致经常把文件拷贝后需要改路径的问题。其实完全可以通过程序来获得数据库文件的绝对路径。具体如下:
web.config中只写数据库文件名 (一般会把数据库文件放在app_data文件夹下,因为有一定的安全性)
appsettings>
add key=connstring value=app_data\managedb.accdb/>
appsettings>
然后在dbhelper类获得字符串的写上如下方法:
public static string connectionstring = provider=microsoft.ace.oledb.12.0; data source= + appdomain.currentdomain.basedirectory + configurationsettings.appsettings[connstring];
通过appdomain.currentdomain.basedirectory来获得此数据库的绝对路径.
其它类似信息

推荐信息