我使用基于服务的数据库选项创建了一个基本的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中但是一旦我关闭应用程序所有这些数据都消失了。为什么会发生这种情况,我该如何解决?
MDF文件在每次运行时都会复制到调试文件夹,这是您的代码操作的文件,而不是源文件夹中的文件。
出现此问题的原因是当您尝试运行程序时,mdf文件也在DEBUG文件夹中保存...只需转到app.config文件,好像您已经添加了目录
Source =。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ Data \ Database1.mdf; Integrated Security = True; User Instance = True
更改| DataDirectory |到完整的数据目录地址就好
“AttachDbFileName = C:\项目\数据\ Database1.mdf”
它会工作