Home >Database >Mysql Tutorial >解决Access连接 accdb 不可识别的数据库格式异常

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

WBOY
WBOYOriginal
2016-06-07 15:38:471863browse

在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文件夹下,因为有一定的安全性)

 

 <span><span>appSettings</span><span>></span><br>        <span><span>add </span><span>key</span><span>="ConnString"</span><span> value</span><span>="App_Data\ManageDB.accdb"</span><span>/></span><br>    <span></span><span>appSettings</span><span>></span></span></span>

然后在DBHelper类获得字符串的写上如下方法:

 <span>public</span> <span>static</span> <span>string</span> connectionString = <span>"</span><span>Provider=Microsoft.ACE.OLEDB.12.0; Data Source=</span><span>"</span> + AppDomain.CurrentDomain.BaseDirectory + ConfigurationSettings.AppSettings[<span>"</span><span>ConnString</span><span>"</span>];

通过AppDomain.CurrentDomain.BaseDirectory来获得此数据库的绝对路径.


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn