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工具,选择数据库类型。

然后选择新建数据库,如下图所示。

然后选择数据库存放的位置,设置密码什么的,就不一一截图了,跟着操作就创建好了数据库文件。
然后在左边可以有个“表”的文件夹可以鼠标右键新建表,建好表也可以进行编辑,略微跟SQL Server数据库的操作不太一样,毕竟这个数据库是轻量级数据库嘛也没那么多复杂的功能。主要对表的设置如下所示,设置表为空啊,主键啊什么的。
(点击图片查看大图)
如何在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目录下的文件)
C# 如何使用 Sql Server Compact 数据库的更多相关文章
- 让PDF.NET支持不同版本的SQL Server Compact数据库
最近项目中需要用到嵌入式数据库,我们选用的数据开发框架是PDF.NET(http://www.pwmis.com/SqlMap/),之前的博文已经总结了让PDF.NET支持最新的SQLite,今天我们 ...
- 微软ASP.NET网站部署指南(2):部署SQL Server Compact数据库
1. 综述 对于数据库訪问,Contoso University程序要求以下的软件必须随程序一起部署.由于不属于.NET Framework: SQL Server Compact (数据库引擎) A ...
- SQL Server Compact 3.5环境部署<转>
通过使用 Microsoft Visual Studio 开发环境,可以开发使用 SQL Server Compact 3.5 的应用程序.Visual Studio 是开发和部署使用 SQL Ser ...
- Sql Server Compact 4.0数据库部署安装
Sql Server Compact 4.0相比3.5版本增强了很多,支持Entity Framework 4.1,对于轻量级应用来讲,使用Sql Server Compact 4.0是个很好的选择, ...
- VS2010 使用 EntityFramework For SQL Server Compact 4.0
1.安装 SSCERuntime_x64-ENU.exe 或 SSCERuntime_x86-ENU.exe 2.安装 SSCEVSTools-CHS.msi 3.然后就可以通过 SQL Server ...
- Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3
最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分. 首先Microsoft SQL Server Compact 4.0 详细的介绍和下载 ...
- SQL Server 2008数据库同步配置
以下内容转载于网络,个人做了简单的修改. 数据库同步可以是同一个服务器之间不同数据库之间数据同步,也可以是局域网内不同服务器间数据库的同步. 下面具体说一下步骤,首先我们说一下发布服 ...
- SQL Server Compact/SQLite Toolbox 使用
最近一个嵌入式的数据库用的SqlCe 需要导入到Sqlite, 网上查到了这个工具--SQL Server Compact/SQLite Toolbox.但是在使用的时候遇到了一点小曲折,记录下来给需 ...
- XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox
XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox SQLite/SQL Server Compact Toolbox是一个Visual Stud ...
随机推荐
- Redis数据存储解决方案
http://www.tuicool.com/articles/77nUZn 1.背景 1.1 Redis简介 官方网站: http://redis.io/ ,Redis是REmote DIction ...
- Oracle数据库零散知识03
21,存储过程,简化复杂操作,增加数据独立性,提高安全性,提高性能 与函数创建对比: create or replace function fun_01(v_01 in number) return ...
- radio实现第一次点击选中第二次点击取消
Jquery代码如下: $("#add_form .radio input").bind("click",function(){ var $radio = $( ...
- jdk 8 lambda表达式以及Predicate接口
了解lambda之前先了解下什么是函数式接口,函数式接口即接口里必须有一个抽象方法(抽象的方法只能有一个,可以有其他的用default修饰的方法) jdk8里新增了一个@FunctionalInter ...
- fiddler AutoResponder(文件代理)
测试网站https://www.meishij.net/ 目标:使用fiddler完成图片的替换 1.首先找到图片地址,然后在fiddler中查找对应图片 2.将对应的图片请求拖入到fiddler的A ...
- sublime 内容高级搜索
在发展中经常需要搜索内表面的文件.更好地想找到$video->getTitle() 在该文件中使用的表面.好了,这个时候就需要使用高级搜索功能,的操作,如以下: ctrl+shif+f纽带 例如 ...
- C#中的并发编程知识二
= 导航 顶部 基本信息 ConcurrentQueue ConcurrentStack ConcurrentBag BlockingCollection ConcurrentDictiona ...
- 至Linux-2.6.32编译内核ipset-6.23坎坷的经历
新的版本号ipset 上周,一名医生在儿童医院等待一段差距叫做数量.接受NetfilterPush信息的邮件列表,列表ipset最新6.23版本号的新功能,非常喜欢我现在需要的是,特别是timeout ...
- codeforces Round #259(div2) D解决报告
D. Little Pony and Harmony Chest time limit per test 4 seconds memory limit per test 256 megabytes i ...
- VC6下深入理解new[]和delete[](在多线程下new和delete的时候,必须选择上多线程库,不然可能造成进程崩溃)
多少年了,一直处于C与C++混用的状态,申请空间一直用malloc,释放空间一直用free,为什么?因为他们好理解易操作,就如同输出一直用printf而不用<<,输入一直用scanf而不用 ...