未存储本地数据库插入

时间:2013-04-17 20:32:34

标签: c# database sql-server-ce

这可能是我的一个愚蠢的错误..但我似乎无法理解它。

我已经创建了一个新的空C#Windows窗体应用程序。

我添加了一个数据库(基于数据集),并将该文件存储在我的解决方案资源管理器中。

我添加了一个包含Test列的表Name

我使用new SqlCeCommand("insert into Test values('Name')", new SqlCeConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)).ExecuteNonQuery();

添加记录

但是,我甚至尝试检索相同的数据,这一切都很完美。

但是当我停止我的项目并重建它时......所有数据都会再次消失?

有没有办法解决这个问题,或者当我开始使用这个项目时,它会自行修复(没有每天500次重建?)

2 个答案:

答案 0 :(得分:4)

您的数据库文件列在具有此属性的项目中

 Copy to destination directory = Copy Always

如果这是真的,则每次重新启动项目时,数据库文件的新(空)副本将从项目目录复制到输出目录(BIN \ DEBUG或BIN \ RELEASE),覆盖在数据库中使用的数据库文件。以前的运行。您可以避免将此属性更改为Copy NeverCopy if newer

答案 1 :(得分:0)

史蒂夫给出的答案一直在将数据库复制到现有数据库上,从而删除所有数据。

我已经设法通过启用“始终复制”来修复此问题,然后在资源管理器中将数据库移动到其他位置并将其添加到项目中。这样,数据库永远不会被覆盖,可以在程序中使用!

(但是,如果/当我将项目发布到另一台计算机时,这可能会引发问题)