我已经使用基于服务的数据库选项创建了一个基本的Windows窗体应用程序,因此,当我将其部署到另一台PC上时,无需在其中安装sql server。
我在项目中添加了LINQ-to-SQL类,here是我的完整代码
这是app.config文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<add name="_16Sep18_databaseAppWithSetup_.Properties.Settings.WrestlersConnectionString"
connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Wrestlers.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
问题是,每当我运行程序时,以前存储的数据就不再存在于数据库中,而是当我输入数据并执行插入,删除,更新等操作时,它就起作用了,并且数据也显示在datagridview中,但是一旦我关闭应用程序,所有这些数据都将消失。 为什么会发生这种情况,我该如何解决?
答案 0 :(得分:1)
MDF文件在每次运行时都会复制到调试文件夹,这是您的代码操作的文件,而不是源文件夹中的文件。
答案 1 :(得分:1)
发生此问题的原因是,当您尝试运行程序时,mdf文件也保存在DEBUG文件夹中... 只需转到app.config文件, 好像您已经添加了目录
Source =。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ Data \ Database1.mdf; Integrated Security = True;用户实例= True
更改| DataDirectory |到完整的数据目录地址,如
“ AttachDbFileName = c:\ Project \ Data \ Database1.mdf”
它将起作用
答案 2 :(得分:0)