一、Access数据库的引擎

引擎名称

常见版本

说明

ACE引擎

Microsoft.ACE.OLEDB.12.0

既能访问Office97-2003,也可以方位Office2007

 Jet引擎

Microsoft.Jet.OLEDB.4.0

只能可以访问Office97-2003

 

 

二、Access文件格式

格式名称

常见版本

说明

 .mdb

Office2002-2003

可以使用Jet引擎,也可以使用ACE引擎

 .accdb

Office2007-

只能使用ACE引擎

三、数据库放在说明地方合适

1、在开发阶段

  (1) 在项目的Program.cs所在的文件夹中创建DataSource文件夹

  (2) 将Access数据库放入该文件夹中

bin\debug”

ODBC找不到ACCESS数据库 access找不到数据库文件_库文件

 

  (4) 双击Properties中的settings,自动更新settings中的名称与app.config中name一致的连接字符串的值。

ODBC找不到ACCESS数据库 access找不到数据库文件_数据库_02

 

  (5) 在Program.cs文件中创建SetDataDirectory函数,并在Main()中调用

ODBC找不到ACCESS数据库 access找不到数据库文件_ODBC找不到ACCESS数据库_03

 

2、在Package阶段

  在应用程序文件夹下的DataSource文件夹中Add Files,添加数据库文件。

ODBC找不到ACCESS数据库 access找不到数据库文件_库文件_04

注意:手动创建的DataSource文件夹的名称、App.config中文件夹的名称、Settings中文件夹的名称以及安装阶段存放数据库的文件夹的名称必须一样,否则会出错。

四、是否将根目录下的数据库文件复制到开发项目中

  在使用数据源配置向导将数据连接的数据库中的库表拖动到创建的DataSet数据集向导页面中时,会提示如下信息:

你选定的连接所使用的本地数据文件不在当前项目中。是否将该文件复制到项目中,并修改连接?如果将数据文件复制到项目中,则每当运行应用程序时,该数据文件都将复制到项目的输出目录中。

1、将该文件复制到项目中

  将数据库复制到项目中,Visual Studio 将创建数据库文件的一个副本,将它添加到项目中,并修改连接以使它现在指向项目中的数据库而不是指向数据库文件的原始位置。而且数据库资源管理器中的数据连接的数据库也会变成项目中的数据库。

复制到输出目录”属性。 默认设置属性依赖的数据库文件的类型使用。

  应用程序开发期间,任何对数据所做的更改(在应用程序内的运行期间)都会同样实施到 bin 文件夹的数据库中。

  而项目根文件夹中的数据库文件仅在您使用“服务器资源管理器”/“数据库资源管理器”或其他 Visual Database Tools 编辑数据库架构或数据时才会更改。

2、不将该文件复制到项目中

  连接到其当前位置中的现有数据库文件。Visual Studio将会创建一个连接,就如同正连接到任何远程数据库一样,并且该数据库文件保留在其原始位置。

五、数据集DataSet.xsd包含哪些文件

  在连接Access数据库时,通常会创建一个数据集DataSet用于作为数据库的实体文件,该文件主要包括:

 

文件名称

下属文件

数据集DataSet.Designer.cs

 

数据集DataSet

数据集TableAdapter

TableAdapterManager

数据集DataSet.xsc

 

数据集DataSet.xss

 

六、App.config与Properties.Settings.settings

  通过资源配置向导完成的数据连接会将该连接的configuration.connectionStrings写进App.config文件,同时更新settings里面的某些设置。

  当修改该App.config文件后,需要手动更新一下settings里面的设置;但是,当修改settings文件后,App.config自动更新。

七、DataDirectory

1、本地应用程序
        数据库文件放在可行性文件所在的文件夹,通常为项目的bin\debug或者bin\release文件夹下路径

2、ClickOnce程序
        对于以ClickOnce方式运行的程序,系统是通过AppDomain.CurrentDomain.GetData("DataDirectory")来解析的。因此,可以通过代码指定,在WPF的App构造方法中加入代码AppDomain.CurrentDomain.SetData("DataDirectory")=AppDomain.CurrentDomain.BaseDirectory;或者,AppDomain.CurrentDomain.SetData("DataDirectory", newDataPath);
3、ASP.net程序
        数据库文件应放在App_Data目录下