2013-04-17 235 views
2

这可能是我的一个愚蠢的错误..但我似乎无法理解它。本地数据库插入不存储

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

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

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

然而,我甚至试图获取相同的数据记录,这一切完美的作品。

但是,当我停止我的项目,并重建它..所有的数据都消失了吗?

有没有办法解决这个问题,还是将自我修复的时候我就开始使用这个项目它是用来干什么(不含500天重建?)

回答

0

由steve给出的答案会将数据库复制到现有数据库上,导致删除所有数据。

我已经设法解决这个问题,把“始终复制”,然后在资源管理器中移动数据库到不同的位置,并将其添加到项目。这样数据库将永远不会被覆盖,并且可以在程序中使用!

(然而,这可能会提出一个问题,如果/当我发布该项目到另一台计算机)

4

你的数据库文件中列出与此属性

Copy to destination directory = Copy Always 

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

+0

如果我把它放在“永不复制”,它给了我一个“未找到文件错误”。如果Newer不更改任何内容,则复制。 –

+0

您能否显示使用的连接字符串? – Steve

+0

connectionString =“Data Source = | DataDirectory | \ Data \ Database \ Test.sdf” - 这是\ Data \ Database \ Test.sdf也可以在我的bin/debug目录中找到 –