如何將 SQLCE 3.5 升級到 SQLCE 4.0
- 2012-02-01
- 16894
- 0
之前 demo 就有推廣過使用 SQLCE 來做為資料庫,SQLCE 最大好處就是可以隨時很方便的升級為 MSSQL ,並且現在和 Visual Studio 2010 SP1 配合的很好以往 3.5的時候還不能「直接」拿來作為網頁的資料庫,但現在 4.0後就可以預設支援了,剛好現在有個小案子所以就想來用 SQLCE 解決,沒想到一個沒注意開到3.5版本的。
基於上面的理由所以就有了這篇文章,一步一步的將 SQLCE 3.5 改成 SQLCE 4.0的教學。
開啟了 Visual Studio 後就直接建立了【本機資料庫】
點兩下可以正常的支援資料表的增修
一切都好完美,連 Entity Framework 都可以直接建模
就在很開心建立好了相關的資料欄位後直接請出強大的【LINQPad】卻發現使用 SQLCE 4.0 來連結卻會告訴我,我不是 SQLCE 4.0
Error:已使用舊版SQL Server Compact 建立資料庫檔。請使用 SqlCeEngine.Upgrade() 方法進行升級
這時候我才了解到,我建立出來的是 SQLCE 3.5 的版本.... 還好錯誤訊息很明確的告訴我要怎麼升級,但是在升級前更發現我根本沒有裝過SQLCE 4.0 所以要先下載【Microsoft SQL Server Compact 4.0】安裝完畢後才能開始轉檔,轉檔依然是使用【LINQPad】來執行升級的動作(方便嘛...)
開啟【LINQPad】後要手動加入參考 System.Data.SqlServerCe 4.0 的 dll
再來就是 Code
//請輸入完整的資料檔案路徑 string filename = @"x:\projects\Solution\Models\db.sdf"; //照抄吧 var ce = new System.Data.SqlServerCe.SqlCeEngine("Data Source=" + filename); ce.Upgrade();
執行後就完成了。
SQLCE 3.5 升級到 SQLCE 4.0 的步驟完成後回到 Visual Studio 2010 卻發現【伺服器總管】看不到資料庫了,這時候開啟了【SQL Server Compact Toolbox】看到剛剛升級4.0是成功的
看到上面的兩張圖第一張只有連結到 Database1 然後看看第二張 SQL Server Compact Toolbox 很明顯的告訴我們,目前連的到的是 3.5 版的。
原來是因為 SQLCE 4.0 出的比 Visual Studio 2010 SP1 晚,所以要讓 VS 看的懂還必須要安裝【SQL CE Tools for Visual Studio】
安裝成功後重開 Visual Studio 就可以看到 SQLCE 4.0 出現並且也可以正常的在【伺服器總管】看到了
回應討論