2012-02-14 47 views
0

我希望将一些数据从SQL CE 3.0数据库到我的应用程序中的SQL CE 3.5数据库复制(使用C#)复制数据从SQL CE 3.0到SQL CE 3.5

不幸的是,我无法访问因为它一直告诉我,我的3.0数据库是使用旧版本创建的。

我可以运行在同一时间的3.5发动机和3.0的发动机?我可以在同一个类库中引用两者吗?

如何将这项工作?

感谢

+1

可以使用2个类库,每个实施〔实施例相同的接口,它们可以每个参考3.0和3.5 – ErikEJ 2012-02-14 18:01:13

+0

这就是我想我最终会做....做成一个答案这一点,如果这个作品,我会给你信贷...不知道它是否还有效,但....不明白为什么它不会是 – 2012-02-14 19:27:04

回答

1
SqlCeEngine engine = new SqlCeEngine(String.Format("Data Source={0};Password={1};Persist Security Info=True",dataBasepath,password)); 
engine.Upgrade(); 

我不知道,但你只是C和升级现有的数据库!

+0

这是我一个月前的第一种方法,但它对我没有用。 ..升级旧的数据库给我使用engine.Upgrade()....即使在升级后,它不会让我使用LINQ到SQL ....但如果我在Visual Studio中重新打开数据库,它会那么让我使用linq到sql。不幸的是,这样做不适用于客户机。所以我所做的是用Visual Studio升级我的旧骨架数据库,并用它替换旧数据库。然后通过代码在从旧到新一个 – 2012-02-14 15:53:15

+0

复制的信息,我决定回到这个......一点点的历史:我最后一次尝试这样做我升级数据库,它仍然不会让我使用LINQ SQL,除非我在Visual Studio中打开数据库......但是现在我忘了我仍然可以使用ADO.NET ....所以对于这个解决方案,我继续前进,并使用升级到3.5,并使用ADO.NET获取我需要的信息。 – 2012-02-15 17:33:52

0

可以使用2个类库,每个实施例如相同的接口,并且它们可以每个参考3.0和3.5。这是我在SQL Server Compact Toolbox中做的,其中相同的代码支持版本3.5和4.0。

+0

ha!我仍然试图做到这一点...由于一些奇怪的原因,我的旧数据库需要升级到SQL CE Engine 3.0使用,这是没有道理的。我使用这个相同的库在我的应用程序的旧版本中访问它。我不知道,如果它试图用我的3.5发动机代替,即使类库引用3.0引擎....东西,总是困惑我是为什么SQL CE 3.0显示版本9.0.242.0在Visual Studio – 2012-02-15 16:15:37

+0

除非是3.5格式已经?使用SQL Server Compact Toolbox进行检查。 – ErikEJ 2012-02-15 16:29:11

+0

SQL Server Compact工具箱说** Sql Server精简版3.0/3.1。** ....和Sql CE引擎3.0没有SQLCEEngine.Upgrade()函数.....我听说你可以使用SQLCEEngine.Repair()。试过了,我得到错误**正在引用的文件不是SQL Server Compact数据库文件格式。** – 2012-02-15 16:55:51