將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'. 」的錯誤,
這是因為我們將實體檔案給刪掉了,但 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
1.3.展開Database,然後將該資料庫刪除掉,
2.Server Explorer視窗 (View –> Server Explorer),執行 Drop Database Script(用SSMS也可以)
2.1.Server選輸入 (LocalDB)\v11.0,Database 選 master
2.2.新增一個查詢
2.3.輸入 Drop Database [要刪除的資料庫名稱] 然後執行
以上從UI刪除或是下Script執行,會出現 Unable to open the physical file… 的錯誤,那是因為實體檔本來就被我們刪除掉了!
再查詢Server上的Databases, 該DB就不存在,這樣下次程式再執行就會自動再產生它!
So...下次如果要刪的話,記得從 (LocalDB)\v11.0 去刪除哦!
參考資料
How To Drop A Database From Visual Studio 2012
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^