.NET Campact Framework下SQL CE兼容性问题

在.NET Campact Framework常用SQL CE数据库进行数据存储,SQL CE是一个扩 展名为*.sdf的文件数据库,曾经命名为SQL Server for Windows CE和SQL Server Mobile Edition,最新版本命名为SQL Server Compact Edition,在文章 中统一叫SQL CE。本文主要讲述SQL CE 3.0和SQL CE 3.5的兼容性问题。

.NET Campact Framework下开发SQL CE统一使用 System.Data.SqlServerCe.dll,该dll封装的命名空间和类是一致的,所以程序 代码是统一的。但是由于*.sdf数据文件格式不一样,MS提供不同版本 System.Data.SqlServerCe.dll,其相关组件存放的位置也不一样。

在vs2005下开发默认使用CF.net的版本为2.0,同时默认使用的SQL CE版本是 3.0。一般在以下目录 C:\Program Files\Microsoft Visual Studio 8 \SmartDevices\SDK\SQL Server\Mobile\v3.0或者C:\Program Files\Microsoft SQL Server 2005 Mobile Edition\Device\Mobile\v3.0。

在vs2008下开发默认使用CF.net的版本为3.5,但是可以选择2.0,同时默认使 用的SQL CE版本是3.5。一般存放在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\。

sdf数据文件和System.Data.SqlServerCe.dll是一对一绑定,3.5的sdf数据文 件只能用3.5的SqlServerCe.dll,3.0的sdf数据文件只能用3.0的 SqlServerCe.dll的,彼此互不兼容。

如果使用3.0的SqlServerCe.dll访问3.5的sdf数据文件会有以下异常

System.Data.SqlServerCe.SqlCeException : You are trying to  access an older version of a SQL Server 

Mobile  database. If this is a SQL Server CE 1.0 or 2.0 database,  run upgrade.exe. 

If this is a SQL Server Mobile 3.0  database, run Compact / Repair. 

[ Db version =  3505053,Requested version = 3004180,File name = DB\db.sdf ]
at System.Data.SqlServerCe.SqlCeConnection.ProcessResults()
at System.Data.SqlServerCe.SqlCeConnection.Open()
at System.Data.SqlServerCe.SqlCeConnection.Open()

时间: 2024-11-02 04:27:41

.NET Campact Framework下SQL CE兼容性问题的相关文章

.NET Compact Framework下SQL CE的使用

在Wince和Windows Mobile下最常用的数据库为SQL CE,SQL CE也曾经叫做SQL Server for Windows CE和SQL Server Mobile Edition,最新版本命名为SQL Server Compact 3.5 SP1. SQL Server Compact不仅仅能运 行于Wince和Windows Mobile,而且能运行于Windows的PC上,是Access的有效替代品,如果不使用存储 过程,在SQL Server Compact下开发的程序

Microsoft Sync Framework下的快速开发同步程序

Microsoft Sync Frameworks简称MSF,是一个综合的同步平台,MSF支持应用程序,服务,设备的在线以及离线同步.MSF主要有以下几个部件组成: * Sync Services for ADO.NET: 同步ADO.NET的数据 * Sync Services for FeedSync: 同步 RSS 和 ATOM 种子 * Sync Services for File Systems: 同步文件和文件夹 * Sync Framework Core Runtime: 客户化的

.NET Compact Framework下的单元测试

在 Wince和Windows Mobile下native C++的单元测试里讲述了在Wince和Windows Mobile下native C++ 进行单元测试的方法,这篇将会讲述.NET Compact Framework下的单元测试.在.NET Compact Framework 下可以使用NUintLite进行单元测试. NUintLite是简化版的NUnit,可以应用于.NET Compact Framework,Mono等平台. 生成NUnitLite库 NUintLite已经从co

sql语句-mysql定时任务 写下SQL语句

问题描述 mysql定时任务 写下SQL语句 想让MYSQL里面的jpzh表里面的isstaus在晚上00定时更新 那个大侠 写下SQL语句 解决方案 CREATE EVENT e_testON SCHEDULE EVERY 1 DAYSTARTS '2014-12-04 00:00:00'DO UPDATE jpzh SET isstaus=.....; 从 2014-12-04 00:00:00 开始,每天做一次 解决方案二: 你的逻辑好像不太对,按常理开发模式,一般是从应用端控制时间,然后

在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)

error|server|程序 错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) ",       上述错误我遇到两种情况,一种是在打开打开SQL Server 2005时弹出的,另一种是在应用程序连接SQL Server 2005时出现的.归纳了一下,由以下几个原因: 1.数据库引擎没有启动.  

初探MS SQL CE+Codesmith

原来的程序是使用sqlite这个嵌入式数据库作为Remit(code name)的数据源的,因为NHibernate支持这 个,然而有一点不好的是sqlite不支持外键,导致可悲的codesmith不能得到关系,无法生成我喜欢的多对多 映射.如果手写就要写映射xml文件以及业务实体类,这可是我这种懒人不喜欢的.况且数据库经常变更,良 好的代码生成可以做到数据库与代码的同步. 硬盘坏了也是一种契机,我突然想到了Sql Server还有一个CE版本,现在不止提供For Mobile的,还提供 桌面版

.NET Compact Framework下的3G应用

在.NET Compact Framework下开发3G应用可以有两个options,1:AT command, 2:RAS.其实RAS最终也是通过AT command来管理3G设备,RAS屏蔽了技术细节,很方便地建 立TCP/IP based 的网络连接,所以推荐使用RAS,WinCE本身提供了native API可以直接操作RAS,管理3G设备及其连接.与此同时RAS也支持有线电话拨号,GPRS等应用. RAS简介 RAS的详细介绍见 Overview of RAS 由于.NET Compa

.NET Compact Framework下的进程间通信之MSMQ开发

上篇讲到WinCe下的MSMQ安装 ,这篇讲述一下MSMQ在.NET Compact Framework 下的开发. 所谓MQ就是Message Queue,消息队列.消息队列可以作为不同应用程序之间 ,甚至不同机器之间通信的渠道.在消息队列下进行通信的内容称为消息 (Message),在C#程序下Message就是对象. MSMQ就是Microsoft公司提供的MQ服务程序.MQ服务程序负责管理消息队列, 保证消息在消息队列这一渠道下能无误的发送到对端,MQ支持离线交易,有时候 消息会缓存在M

.NET Compact Framework下的进程间通信之Windows Message

在Wince和Windows Moblie 下的进程间通信可以由以下几种技术实现. 1. Windows Message 2. Point-to-Point Message Queues 3. MSMQ 下面使用讲述.NET Compact Framework下使用Windows Message进行进程间的 通信. 引用库 在CF.net下进行Windows Message的开发需要引用Microsoft.WindowsCE.Forms ,该DLL一般存放于C:\Program Files\Mi