[ERROR]Cannot attach the file '...aspnet-WebApplication4.mdf' as database 'aspnet-WebApplication4'.

將mdf從App_Data目錄中刪除,再執行程式,居然出現 Cannot attach the file '...aspnet-WebApplication4.mdf' as database 'aspnet-WebApplication4'. 的錯誤!

在使用ASP.NET LocalDb 開發時,有些人會直接將 App_Data 目錄中的 mdf 檔案給刪除掉。

當程式再次執行時,期望會自動再產生一個新的mdf檔案。

但這時會出現「Cannot attach the file 'd:\App_Data\aspnet-WebApplication4.mdf' as database 'aspnet-WebApplication4'. 」的錯誤,

image

 

這是因為我們將實體檔案給刪掉了,但 LocalDb Server 以為該DB還在,所以要去存取該檔案,但該檔案已被我們刪掉了,就出現那個錯誤!

那要如何解決呢? 可依「How To Drop A Database From Visual Studio 2012」做法,將資料庫從 LocalDb Server 刪除掉。

1.SQL Server Object Explorer

1.1.開啟 SQL Server Object Explorer 視窗 (View -> SQL Server Object Explorer),

1.2.連到 (LocalDB)\v11.0 

image

 

1.3.展開Database,然後將該資料庫刪除掉,

image

 

 

2.Server Explorer視窗 (View –>  Server Explorer),執行 Drop Database Script(用SSMS也可以)

2.1.Server選輸入 (LocalDB)\v11.0,Database 選 master

image

 

2.2.新增一個查詢

image

 

2.3.輸入 Drop Database [要刪除的資料庫名稱] 然後執行

image

 

以上從UI刪除或是下Script執行,會出現 Unable to open the physical file… 的錯誤,那是因為實體檔本來就被我們刪除掉了!

再查詢Server上的Databases, 該DB就不存在,這樣下次程式再執行就會自動再產生它!

image

 

So...下次如果要刪的話,記得從 (LocalDB)\v11.0 去刪除哦!

 

參考資料

How To Drop A Database From Visual Studio 2012

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^