Sql Server Compact Edition(簡稱SqlCE)是一個輕量級的數據庫,對于放在客戶機上的程序而有需要存儲數據這樣的環境,使用SqlCE再合適不過了。SqlCE可以通過在VS(Visual Studio)中使用SQL Server Compact Toolbox中進行對數據庫的操作,包括創建數據庫啦,創表什么的…還可以在 Sql Server Management Studio 工具中進行創建。
無論是創建表,還是使用都是非常方便的(微軟的東西相對其他公司的東西而言,我感覺一直都很方便…..)
知道了SqlCE的使用場景后,我們再來了解下如果把程序寫好了發給客戶機上使用還需要安裝 Sql Server Compact Edition 這個安裝程序嗎?非常不錯的是 不需要安裝,你只需要把相關的dll引用到項目下一起打包過去即可。(跟 sqlite 一樣輕便)
前面我們提到過,可以有兩種方式,本文起個拋磚引玉的作用,主要描述如何在 SQL Server Management Studio 中創建數據庫。
Q.首先你需要在電腦中安裝了 SQL Server Compat 4.0 (推薦4.0版本,你也可以安裝3.5….)
A.可以在控制面板中的卸載程序中搜索一下 “Compact” 看看是否安裝了,如果沒有安裝,可以到以下地址中進行下載安裝。因為一般來說你完整安裝了 Sql Server 就會帶著SqlCe,所以這種情況就無需再去下載安裝了。
SQL Server Compact 4.0 下載地址:http://www.microsoft.com/zh-CN/download/details.aspx?id=17876
Q.使用 SQL Server Management Studio (以下簡稱sql server)創建 SqlCE 數據庫。
A.如圖所示打開sql server工具,選擇數據庫類型。
然后在左邊可以有個“表”的文件夾可以鼠標右鍵新建表,建好表也可以進行編輯,略微跟SQL Server數據庫的操作不太一樣,畢竟這個數據庫是輕量級數據庫嘛也沒那么多復雜的功能。主要對表的設置如下所示,設置表為空啊,主鍵啊什么的。
創建好數據庫文件設置好之后,把數據庫文件復制到你的項目的Debug中方便測試。
然后在你SqlCE的安裝目錄中復制 “C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Desktop” 目錄中的 System.Data.SqlServerCe.dll 文件到項目中進行引用即可(根據你的情況選擇4.0還是3.5,注意看下目錄)。
這樣就可以正常運行你的程序了,如下所示的代碼進行調試:
- static void Main(string[] args)
- {
- System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection("Data Source=MyDatabase#1.sdf;Persist Security Info=False;Password=wxzzz;");
- conn.Open();
- }
如果能正常Open(); ,那么恭喜你一切順利。
當然,以上是順利的情況,如果你跟我同樣遇到了以下問題,那么是我的一些解決辦法僅供參考:
首先建議你使用 SQL Server Management Studio 2012 這個版本來創建SQLCE數據庫,因為這樣才是4.0的版本,我使用2008的版本創建出來是3.5的,所以只能使用SQLCE 3.5的引用。
還有個創建4.0數據庫的辦法就是使用VS中的插件,可以在VS中搜索一下 SQL Server Compact 即可找到。
另外我還遇到了個奇怪的現象,還沒解決..就是這個玩意兒在我的機器上只能運行 .NET Framework 4.5 以上的版本,其他的版本都會異常……
需要拷貝以下dll到程序的目錄即可:
C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll
C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.Entity\System.Data.SqlServerCe.Entity.dll ( 3.5版本的,不需要復制該文件)
C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\Private\x86 下所有文件
(注意,如果你使用的是3.5的版本,那么就拷貝3.5目錄下的文件)