2017-04-19 128 views
0

我正在開發一個使用Microsoft mdb數據庫「OLEDB.12.0」存儲記錄的C#應用​​程序,所有工作都很好。不過,我希望能夠在用戶單擊按鈕時備份數據庫。C#將應用程序mdb數據庫保存爲備份

目前,我正在使用以下代碼,該代碼在通過MS Studio 2015運行時運行,但在安裝後失敗。

string DBFile = "Database.mdb" as string; 

     //Set Database Filename As Today's Date For Backup And Replace Unwanted Characters 
     string ThisDate = DateTime.Now.ToString("M/d/yyyy") as string; 
     char[] separators = new char[] { ' ', '/', ',', '\r', '\t', '\n' }; 

     string[] temp = ThisDate.Split(separators, StringSplitOptions.RemoveEmptyEntries); 
     ThisDate = String.Join("_", temp); 

     //Open The Save Dialog 
     SaveFileDialog openFileDialogDB = new SaveFileDialog(); 

     openFileDialogDB.InitialDirectory = Application.ExecutablePath.ToString(); 
     openFileDialogDB.Filter = "mdb files (*.mdb)|*.mdb|All files (*.*)|*.*"; 
     openFileDialogDB.FilterIndex = 1; 
     openFileDialogDB.RestoreDirectory = true; 
     openFileDialogDB.FileName = ThisDate; 

     if (openFileDialogDB.ShowDialog() == DialogResult.OK) 
     { 
      //Save Database Backup 
      File.Copy(DBFile, openFileDialogDB.FileName, true); 
     } 

使用Install Shield安裝後出現的錯誤是。

System.IO.FileNotFoundException:找不到文件'Database.mdb'。 文件名稱:'Database.mdb'

並安裝後使用一鍵安裝我得到。

System.IO.FileNotFoundException:未能找到文件 「C:\ Users \用戶名\ AppData \本地\ APPS \ 2.0 \ X27G5OGV.1A8 \ X58VR M4Y.HGD \ lght..tion_0 000000000000000_0001 .0000_f0c86b36a0494a 4c \ Database.mdb'

所以我的問題是如何在安裝應用程序後對數據庫進行備份。

奇怪的是,如果我將Install Shield配置爲在安裝完成後運行應用程序,然後執行數據庫備份,它將正常工作。但是,如果我退出並重新啓動應用程序,它又失敗了

+0

本地數據庫是MDF的權利?如果我沒有弄錯,mdb是mdf的數據文件。你應該複製mdf而不是mdb嗎? – Krishna

+0

啊!我沒有想到,會試一試。謝謝 – Malcolm

+0

在複製之前嘗試分離 – Krishna

回答

0

我終於弄明白了,所以我在這裏發佈我的解決方案給其他可能有同樣問題的人。

Solution Explorer中安裝安裝屏蔽的Visual Studio並將其添加到您的項目雙擊項目助理,然後點擊應用程序快捷方式後。

其他地方點擊 快捷方式並突出顯示要編輯,然後在右邊的 工作目錄添加以下 [INSTALLDIR]莫名其妙 安裝屏蔽快捷側板

現在留下這個空白,即使點擊快捷方式應用程序運行良好,但沒有它,我得到了我的問題上面所述的錯誤。

相關問題