demoshop

demo, trying to be the best_

之前 demo 就有推廣過使用 SQLCE 來做為資料庫,SQLCE 最大好處就是可以隨時很方便的升級為 MSSQL ,並且現在和 Visual Studio 2010 SP1 配合的很好以往 3.5的時候還不能「直接」拿來作為網頁的資料庫,但現在 4.0後就可以預設支援了,剛好現在有個小案子所以就想來用 SQLCE 解決,沒想到一個沒注意開到3.5版本的。

demo廢言基於上面的理由所以就有了這篇文章,一步一步的將 SQLCE 3.5 改成 SQLCE 4.0的教學。

 

●開啟了 Visual Studio 後就直接建立了【本機資料庫】


●點兩下可以正常的支援資料表的增修


●一切都好完美,連 Entity Framework 都可以直接建模


demo廢言就在很開心建立好了相關的資料欄位後直接請出強大的【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 出現並且也可以正常的在【伺服器總管】看到了


 

回應討論