Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Visual Studio中调试C时,是否可以将更改提交到实际数据库?_C#_Database_Visual Studio_Debugging - Fatal编程技术网

C# 在Visual Studio中调试C时,是否可以将更改提交到实际数据库?

C# 在Visual Studio中调试C时,是否可以将更改提交到实际数据库?,c#,database,visual-studio,debugging,C#,Database,Visual Studio,Debugging,我正在使用VisualStudio创建一个使用SQLExpress数据库的C应用程序。当我点击f5调试应用程序并对数据库进行更改时,我相信正在发生的事情是在bin/debug文件夹中有一个数据库副本,正在对其进行更改 但是,当我停止调试,然后在下次将数据库的新副本放入bin/debug文件夹时按f5,以便上次所做的所有更改都消失 我的问题是: 在调试应用程序时,是否有一种方法可以让它更改实际的数据库并实际保存这些更改,或者如果实际发生这种情况,它只会更改bin/debug文件夹中的副本 我见过类

我正在使用VisualStudio创建一个使用SQLExpress数据库的C应用程序。当我点击f5调试应用程序并对数据库进行更改时,我相信正在发生的事情是在bin/debug文件夹中有一个数据库副本,正在对其进行更改

但是,当我停止调试,然后在下次将数据库的新副本放入bin/debug文件夹时按f5,以便上次所做的所有更改都消失

我的问题是:

在调试应用程序时,是否有一种方法可以让它更改实际的数据库并实际保存这些更改,或者如果实际发生这种情况,它只会更改bin/debug文件夹中的副本

我见过类似的问题,但我找不到一个答案来说明是否有可能在实际的.mdf文件中持久化这些更改

我之所以问这个问题,是因为在构建这个应用程序时,我不断地添加片段和测试,以确保它们都能协同工作。当我输入测试数据时,我使用的是我希望留在数据库中的实际数据。这将帮助我以后不必重新输入数据


提前感谢您提供的任何帮助或信息,可以帮助我更好地理解该过程。

将数据库复制到某个适当的位置,并将配置文件中的连接字符串更改为仅指向该位置,这只是一个建议,因为不确定应用程序的类型。它是。

在解决方案资源管理器中选择数据库,并将“复制到输出”目录更改为“复制(如果更新)”。稍后,当您最终获得最终版本时,将调试文件夹中的数据库复制粘贴到源文件夹中。

如果更新,则复制的问题是,当您更改数据库结构的任何部分时,该更改是对项目目录中的版本的更改,而不是对调试目录中正在构建的版本的更改

此外,当您尝试非调试运行时,您没有使用在调试位置更改的副本

我通常使用Postgresql,但由于这是一台新的计算机,我发现MS使用的是Lite版本,所以决定尝试一下。我在表中有很多我想要的历史数据,然后用一些SQL进行一些手动操作,然后我可以继续创建数据库的实际功能

您不能只将修改后的版本复制到项目目录中,因为有一个日志文件,似乎没有人知道其中包含什么,但Microsoft迫切需要它以某种方式与您的数据库文件匹配。我猜你也试过了

我不想每次运行它都从零开始,就像你一样,我没有找到解决方案。因此,我不顾一切地将Debug中的版本复制到tmp目录中。然后在项目解决方案资源管理器中删除该版本

然后我将tmp中的版本拖放到解决方案资源管理器中。除下文所述外,所有内容在结构上均与原件相同

就这样,它重新创建了日志文件。现在,我的调试会话从已加载的数据开始

警告的话。 1更改数据库结构。 在您的解决方案资源管理器中,Linq to SQL DBML文件中,如果您在代码中更改了数据库的某些结构部分(我倾向于这样做),请右键单击DBML文件并进入设计视图。然后将添加的任何新表或视图拖动到设计中

2因为在数据库中删除和拖动感觉有点棘手,所以请自己编写一个函数,在调试模式下在Form_Open上运行,以复制数据库文件,例如

\MyDatabaseBackup\myDatabase\u date\u time.mdb


请记住,如果您在任何时候返回到以前的版本,您都需要将其重命名为myDatabase.mdb

非常感谢。这就成功了。我已经找了好几天的解决办法了,我没办法。bin数据库版本是更新的版本,而不是原始数据库版本。@ralphspoon实际上,bin文件夹中的版本将是更新的版本。如果要更新原始版本,则必须更改连接string@Martheen是的,我已将连接字符串更改为手动路径,而不是默认路径。重新启动visual studio,清理项目,然后就可以开始了。thanks@Martheen我怎样才能拥有像OP的错误这样的功能。我只想在第一次“生成”项目后对bin文件夹中的数据库进行更改,并且希望项目中的原始.mdf文件保持不变。这是可以实现的吗?我需要做一些事情就像你的问题一样,我怎样才能实现你的问题。