2011-05-17 74 views
0

我不确定这是来自我身边的安装问题还是一些错误,但我面临一个非常奇怪的问题。Visual Studio项目中的Sql服务器CE 4.0突然丢失数据

我正在VS 2010 Winforms项目中针对SQL Server CE 4.0开发。它被保存在项目像这样

enter image description here

现在发生的事情是,一些奇怪的原因,每当我遇到异常,在我的应用程序或做数据库更新模式,我失去了我所有的测试数据。不只是一个表,全部是整个数据库,除了模式对象。

请记住,我没有做任何事从模型或任何东西重新生成数据库。它只是删除所有的数据,目前它甚至不能完全重现。完全不可预知。即使数据被删除,模式仍然保持完整。

任何人都可以帮忙吗?

回答

0

好吧,我想出的解决方案 - 非常愚蠢的我,但我认为其他人可以犯同样的错误所以这里去 -

我使用的连接字符串| DataDirectory目录| \ LocalDB.sdf和预期它从项目目录中取出 - 取而代之的是它从调试文件夹中取出。现在我知道它是有道理的。

因此,每当我进行模式更新时,原始数据库都会被更改,因此它会替换调试文件夹中存在的LocalDB。由于项目中的db从来没有任何数据,因此我曾经不必要地获取空数据库。

0

实际上,在SQL Server CE数据库发生更改后(例如在架构中),它会用新副本替换应用程序内部的数据库。如果sqlserver ce中的数据库与应用程序内部的数据库有不同的数据集,应用程序中的以前的数据将会丢失。