一、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數據庫放入該文件夾中
(3) 修改app.config文件中connection string 中data source字符串,其中|DataSource|代表該項目中“bin\debug”
(4) 雙擊Properties中的settings,自動更新settings中的名稱與app.config中name一致的連接字符串的值。
(5) 在Program.cs文件中創建SetDataDirectory函數,並在Main()中調用
2、在Package階段
在應用程序文件夾下的DataSource文件夾中Add Files,添加數據庫文件。
注意:手動創建的DataSource文件夾的名稱、App.config中文件夾的名稱、Settings中文件夾的名稱以及安裝階段存放數據庫的文件夾的名稱必須一樣,否則會出錯。
四、是否將根目錄下的數據庫文件復制到開發項目中
在使用數據源配置向導將數據連接的數據庫中的庫表拖動到創建的DataSet數據集向導頁面中時,會提示如下信息:
你選定的連接所使用的本地數據文件不在當前項目中。是否將該文件復制到項目中,並修改連接?如果將數據文件復制到項目中,則每當運行應用程序時,該數據文件都將復制到項目的輸出目錄中。
1、將該文件復制到項目中
將數據庫復制到項目中,Visual Studio 將創建數據庫文件的一個副本,將它添加到項目中,並修改連接以使它現在指向項目中的數據庫而不是指向數據庫文件的原始位置。而且數據庫資源管理器中的數據連接的數據庫也會變成項目中的數據庫。
生成項目時,可以將數據庫文件從根項目文件夾中復制到輸出(“bin”)文件夾中。 (在“解決方案資源管理器”中選擇“顯示所有文件”,可查看該“bin”文件夾。)此行為基於設置文件的“復制到輸出目錄”屬性。 默認設置屬性依賴的數據庫文件的類型使用。
應用程序開發期間,任何對數據所做的更改(在應用程序內的運行期間)都會同樣實施到 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目錄下