none
連不上 debug 資料夾下的 mdf 檔 RRS feed

  • 問題

  • 各位先進好...

    小弟依照書本範例自己建了一個Database1 ,

    在vs2017偵錯下沒有問題,

    但之後在debug資料夾下執行 exe 檔,

    出現錯誤代碼:

    無法開啟至 SQL Server 的連接,錯誤:26。

    不知是否少安裝了什麼程式?

    visual studio installer 下有SQL字眼的我都裝上了...

    因為證號認證問題沒辦法貼上圖片請包容!

    程式碼如下:

     using (SqlConnection cn = new SqlConnection())
                {
                    cn.ConnectionString = "Data Source=.\\SQLExpress;"
                        + "AttachDbFilename=|DataDirectory|Database1.mdf;"
                        + "Integrated Security=True;User Instance=True;";

                    cn.Open();

                    SqlCommand cmd = new SqlCommand("SELECT * FROM 員工", cn);
                    SqlDataReader dr = cmd.ExecuteReader();

    2017年7月25日 上午 08:21

解答

  • 最後我改了VS的SQLSERVER預設值型個體就好了..

    不知各位先進可否為我解釋一下嗎?

    網路上的內容可能我資歷太淺(自學一個月)實在看不太懂...

    下載vs2017後SQLserver到底有沒有裝到電腦了?

    還有每個mdf檔都要用版本下的sqlserver去開嗎?

    希望可以幫我釐清一下 感謝!!

    2017年7月25日 下午 05:55

所有回覆

  • 您的Database1.mdf有放在App_Data資料夾中嗎? 請參考:

    SQL Express connection string: mdf file location relative to application location

    2017年7月25日 上午 08:31
  • @tihs 

    您的意思是直接在 debug資料夾下新增 App_Data資料夾

    然後把 mdf檔丟進去

    在去改程式內的字串嗎?


    • 已編輯 JasonLin66 2017年7月25日 上午 08:45
    2017年7月25日 上午 08:43
  • 樓主寫的是 Window Forms 還是 ASP.NET Web Form ? App_Data 這一套適用的是 Web Form ,不是桌面應用程式的方式。

    建議樓主要學 ADO.NET 可以看 MSDN 的文件 ADO.NET (這份文件寫得比很多書的內容都要好很多)


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


    2017年7月25日 上午 10:21
    版主
  • 如果是 winform ,把 .exe 複製到上層專案目錄,有可能是相對路徑錯誤。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2017年7月25日 下午 02:06
  • 我寫的是window forms 
    謝謝推薦~我會好好拜讀的!

    2017年7月25日 下午 05:51
  • 最後我改了VS的SQLSERVER預設值型個體就好了..

    不知各位先進可否為我解釋一下嗎?

    網路上的內容可能我資歷太淺(自學一個月)實在看不太懂...

    下載vs2017後SQLserver到底有沒有裝到電腦了?

    還有每個mdf檔都要用版本下的sqlserver去開嗎?

    希望可以幫我釐清一下 感謝!!

    2017年7月25日 下午 05:55
  • 一般來說,在正式環境上的資料庫很少是用動態掛載的 (也就是樓主現用的方式)

    我們大部分的情況都是資料庫靜態掛載上 SQL Server。
    https://docs.microsoft.com/zh-tw/sql/relational-databases/databases/database-detach-and-attach-sql-server


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

    2017年7月26日 上午 05:57
    版主
  • 動態掛載通常是作業,好處是可攜性,但若已掛載同名資料庫,第二個不能掛載。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2017年7月26日 下午 03:08