重新运行时,数据未在本地数据库中保存c#

问题描述 投票:0回答:2

我使用基于服务的数据库选项创建了一个基本的Windows窗体应用程序,这样当我在另一台PC上部署它时,就不需要在那里安装sql server.Here is the image of my app

我在项目中添加了一个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中但是一旦我关闭应用程序所有这些数据都消失了。为什么会发生这种情况,我该如何解决?

c# linq-to-sql localdb
2个回答
1
投票

MDF文件在每次运行时都会复制到调试文件夹,这是您的代码操作的文件,而不是源文件夹中的文件。


1
投票

出现此问题的原因是当您尝试运行程序时,mdf文件也在DEBUG文件夹中保存...只需转到app.config文件,好像您已经添加了目录

Source =。\ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ Data \ Database1.mdf; Integrated Security = True; User Instance = True

更改| DataDirectory |到完整的数据目录地址就好

“AttachDbFileName = C:\项目\数据\ Database1.mdf”

它会工作


0
投票

我通过更改“copy always”=>“copy if newer”解决了这个问题:

enter image description here

它对我有用。希望这对你有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.