2012-03-19 70 views
2

我創建了我在C#中的第一個項目,它使用SQL Server數據庫(文件名:printing.mdf) 我創建有關SQL Server Express數據庫,並開發了一個應用程序來操縱該數據庫。 部署(在客戶端的PC安裝SQL Server,然後手動安裝數據庫)之後,一切工作正常。保持數據庫文件

真正的問題是,我想

  1. 我的應用程序應該安裝過程中自動安裝SQL Server。
  2. 數據庫(printing.mfd)文件也應在安裝過程中附接。
  3. 最重要的是:我想在D盤上保存mdf文件,這樣當系統盤(C :)因任何原因被格式化時,我的數據庫不應該丟失。

對於最後一個問題我已經試過此連接字符串

Data Source=.\SQLEXPRESS;AttachDbFileName=d:\printingData\printing.mdf;Integrated Security=True;User Instance=True 

我也複製printing.mdfd:\printingData 這個工作在我的電腦,但不是在客戶端PC

任何建議,特別是涉及到第三一個。

回答

1
  1. 您無法自動安裝SQL Server。即使這是可能的,由於大量的系統測試/配置都是在安裝過程中完成的,因此它將非常值得聯合國推薦。

  2. 您可以數據庫文件在安裝時使用自定義安裝包安裝到現有的SQL Server實例。 NSIS是最好的免費軟件我所遇到的安裝,它是非常有據可查和支持(由用戶等)。數據庫附件所需的功能是發現的其中一個插件here on the NSIS Wiki pages

  3. 當然,您PC上的D:分區可能不存在於其他用戶自己的計算機上。而且,在用戶的機器上沒有自動創建這種分區的方法。要做,或試圖做到這一點非常干擾。

在我看來,我會創建一些文檔,指定您的軟件的建議配置。您還可以提供有關如何分區硬盤的安裝說明。但是你會發現用戶(特別是臨時用戶)不會想要做這樣的事情!

編輯:回覆您的評論。對於在看到the following MSDN article從命令提示符處安裝 - 祝你好運,並要小心嘗試自動化這個,這不是一個好主意......

要使用T-SQL使用下列查詢附加數據庫:

-- For an .mdf with no log file - rebuild it. 
CREATE DATABASE [{0}] ON (FILENAME = N'{1}') ATTACH_REBUILD_LOG;);  
-- For a standard attach. 
CREATE DATABASE [{0}] ON (FILENAME = N'{1}') FOR ATTACH; 

請注意,您可以使用系統存儲的過程來附加數據庫,但Microsoft正在逐步淘汰這些數據庫。

希望這會有所幫助。

+0

謝謝。以及前兩個問題可以通過適當的文檔解決,現在第三個考慮這種情況「系統啓動並運行,printing.mdf是在D:驅動器,有一天我的客戶決定重新安裝Windows,然後SQL服務器和我的應用程序。現在他必須附上printing.mdf「你有什麼建議來執行這個最後的任務。我認爲他可以使用管理工作室,但他不是技術人員,我不想包括MS。其次,我認爲我應該提供.bat格式的腳本,以便在sql安裝後運行。第三,你的答案是NSIS。你認爲最好的解決方案是什麼? – 2012-03-19 18:46:14

+0

如果確實是答案,請記得接受答案。 :] – MoonKnight 2012-03-20 09:20:39

+0

謝謝。這真的有幫助。 – 2012-03-21 06:17:39