C# 如何使用 Sql Server Compact 数据库
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 Compact 数据库,创建表
前面我们提到过,可以有两种方式,本文起个抛砖引玉的作用,主要描述如何在 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工具,选择数据库类型。
SqlServerCompactEdition
然后选择新建数据库,如下图所示。
SqlServerCompactEdition2
然后选择数据库存放的位置,设置密码什么的,就不一一截图了,跟着操作就创建好了数据库文件。
然后在左边可以有个“表”的文件夹可以鼠标右键新建表,建好表也可以进行编辑,略微跟SQL Server数据库的操作不太一样,毕竟这个数据库是轻量级数据库嘛也没那么多复杂的功能。主要对表的设置如下所示,设置表为空啊,主键啊什么的。
SqlServerCompactEdition3
如何在VS中使用SQL Server Compact
创建好数据库文件设置好之后,把数据库文件复制到你的项目的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 以上的版本,其他的版本都会异常……
如何部署 SQL Server Compact
需要拷贝以下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目录下的文件)