none
請問專案使用發行時要如何包裝資料庫進去 RRS feed

  • 問題

  • 各位前輩好~ 小弟使用VS2013C# 發行專案後的執行檔,丟到另一台無法執行直接就顯示錯誤,再想可能因為程式有使用到資料庫,才造成錯誤原因。

    下面是連線使用的CODE,我沒掛載到SSMS上,直接再VS裡面創造的,懇請指教,謝謝

    SqlConnection sqlCon= new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\user\Documents\Visual Studio 2013\Projects\WindowsFormsApplication3\DB11\ContactDB11.mdf;Integrated Security=True;Connect Timeout=30");

    2017年6月15日 上午 06:57

解答

  • localdb 是讓你開發用的。 你要額外安裝 SQL Server 然後把資料庫建立起來。

    • 已標示為解答 pigpp 2017年8月10日 上午 01:51
    2017年6月15日 上午 06:59
  • 除了 "Coding Kid Peter Chang" 大大所說,你還要把 ContactDB11.mdf 包裝在安裝包裡。

    另外最好改一下Connection String 的路徑,因為你現在的code,需要這個user的profile也在別的電腦,最好改為一些好一點的路徑,如 c:\data\WinContactDB\ContactDB11.mdf,再把這DB放在裡面


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 pigpp 2017年6月19日 上午 03:23
    2017年6月15日 上午 07:16
  • (LocalDB)\v11.0; 

    這東西限於本機測試使用,無法包裝在應用程式之內發行。

    解法,要看你是 桌面應用程式 還是 Web應用程式,所有不同。

    桌面應用程式,通常會改用 SQL Server Compact 之類 ( SQLite 也行 )的資料庫。

    Web 應用程式,通常會架設一台 SQL Server,確認你的 Web App 能連線至 SQL Server,發行時替換連線字串。


    理直氣和,切記。

    個人

    • 已標示為解答 pigpp 2017年6月19日 上午 03:23
    2017年6月15日 上午 07:41
  • (1) local db 還是可以隨專案部署的,和以前 Compact SQL 差不多,就是要補一些 dll 上去。

    (2) 如果你是單人單機使用 (Windows Forms/WPF 之類的),local db 還算可行方案,如果你的 db 會多機同時連線,那最好還是採靜態掛載到 SQL Server (Web 也請採用靜態掛載)

    國外 TechNet 有篇討論可以參考
    How to silently install localdb on the destination machine from within an application

    或是 搜尋網路上其他文章


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。



    2017年6月15日 上午 08:30
    版主

所有回覆

  • localdb 是讓你開發用的。 你要額外安裝 SQL Server 然後把資料庫建立起來。

    • 已標示為解答 pigpp 2017年8月10日 上午 01:51
    2017年6月15日 上午 06:59
  • 除了 "Coding Kid Peter Chang" 大大所說,你還要把 ContactDB11.mdf 包裝在安裝包裡。

    另外最好改一下Connection String 的路徑,因為你現在的code,需要這個user的profile也在別的電腦,最好改為一些好一點的路徑,如 c:\data\WinContactDB\ContactDB11.mdf,再把這DB放在裡面


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 pigpp 2017年6月19日 上午 03:23
    2017年6月15日 上午 07:16
  • Coding Kid Peter Chang您好

    你的意思是說我要把我這個LOCALDB掛載到SSMS上嗎?

    2017年6月15日 上午 07:24
  • MSMVP KenLin for .NET您好

    所以我把本地DB掛載到SSMS上之後,把 ContactDB11.mdf 包裝在安裝包裡, 但要如何把MDF包裝再安裝包裡面,能指點下嗎

    2017年6月15日 上午 07:26
  • (LocalDB)\v11.0; 

    這東西限於本機測試使用,無法包裝在應用程式之內發行。

    解法,要看你是 桌面應用程式 還是 Web應用程式,所有不同。

    桌面應用程式,通常會改用 SQL Server Compact 之類 ( SQLite 也行 )的資料庫。

    Web 應用程式,通常會架設一台 SQL Server,確認你的 Web App 能連線至 SQL Server,發行時替換連線字串。


    理直氣和,切記。

    個人

    • 已標示為解答 pigpp 2017年6月19日 上午 03:23
    2017年6月15日 上午 07:41
  • (1) local db 還是可以隨專案部署的,和以前 Compact SQL 差不多,就是要補一些 dll 上去。

    (2) 如果你是單人單機使用 (Windows Forms/WPF 之類的),local db 還算可行方案,如果你的 db 會多機同時連線,那最好還是採靜態掛載到 SQL Server (Web 也請採用靜態掛載)

    國外 TechNet 有篇討論可以參考
    How to silently install localdb on the destination machine from within an application

    或是 搜尋網路上其他文章


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。



    2017年6月15日 上午 08:30
    版主
  • (LocalDB)\v11.0; 

    這東西限於本機測試使用,無法包裝在應用程式之內發行。

    解法,要看你是 桌面應用程式 還是 Web應用程式,所有不同。

    桌面應用程式,通常會改用 SQL Server Compact 之類 ( SQLite 也行 )的資料庫。

    Web 應用程式,通常會架設一台 SQL Server,確認你的 Web App 能連線至 SQL Server,發行時替換連線字串。

    您好

    我已經掛載到SSMS上,這樣要如何包資料庫進去?

     SqlConnection sqlCon = new SqlConnection(@"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=HD_3345678;Integrated Security=True");
    還是有點搞不太懂它的流程,我按發行它會自動包嗎? 還是要從C#發行-必要條件去做勾選

    2017年6月16日 上午 08:59