这可能是我的一个愚蠢的错误..但我似乎无法理解它。
我已经创建了一个新的空C#Windows窗体应用程序。
我添加了一个数据库(基于数据集),并将该文件存储在我的解决方案资源管理器中。
我添加了一个包含Test
列的表Name
。
我使用new SqlCeCommand("insert into Test values('Name')", new SqlCeConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)).ExecuteNonQuery();
但是,我甚至尝试检索相同的数据,这一切都很完美。
但是当我停止我的项目并重建它时......所有数据都会再次消失?
有没有办法解决这个问题,或者当我开始使用这个项目时,它会自行修复(没有每天500次重建?)
答案 0 :(得分:4)
您的数据库文件列在具有此属性的项目中
Copy to destination directory = Copy Always
如果这是真的,则每次重新启动项目时,数据库文件的新(空)副本将从项目目录复制到输出目录(BIN \ DEBUG或BIN \ RELEASE),覆盖在数据库中使用的数据库文件。以前的运行。您可以避免将此属性更改为Copy Never
或Copy if newer
答案 1 :(得分:0)
史蒂夫给出的答案一直在将数据库复制到现有数据库上,从而删除所有数据。
我已经设法通过启用“始终复制”来修复此问题,然后在资源管理器中将数据库移动到其他位置并将其添加到项目中。这样,数据库永远不会被覆盖,可以在程序中使用!
(但是,如果/当我将项目发布到另一台计算机时,这可能会引发问题)