2012-02-14 81 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