繁体   English   中英

如何停止Visual Studio调试,以便不提交sql数据库更改?

[英]How to stop Visual Studio debugging so sql database changes not commit?

我白天会处理几个代码页和存储过程。 我正在寻找一种在调试时停止Visual Studio的简便方法,以便数据库更改回滚。 由于我使用多个页面,因此我不想在我的页面或我使用的每个SP中添加代码。 我可以在即时窗口中使用快捷方式或命令吗?(我对其他解决方案持开放态度-这些是我想到的解决方案)如果我可以手动引发异常(不是用代码编写的,则在即时窗口中可能是)它可能会起作用。)

如果要抛出异常,可以在达到断点后使用“立即窗口”进行处理。

问题是,您不能在“即时窗口”中使用以下内容:

throw new ApplicationException("Forced exception");

但是您可以创建该方法,然后从立即窗口启动它

public static void ForceAnException()
{
    throw new ApplicationException("Forced exception");
}

在即时窗口中:

ForceAnException();

编辑:

所以也许试试这个:

var throwEx = false;
if(throwEx) ForceAnException();

然后在检查条件之前将即时窗口throwEx更改为true ...应该可以...

我认为最好的办法是使用TransactionScope类

只需将您的数据库调用包装在里面

 using (TransactionScope scope = new TransactionScope())
{
   // Invoke your database calls
   scope.Complete(); // Put a break point here and stop the program when the break point is hit.
}

我通常使用Process Explorer杀死w3wp.exe进程。 或者,您可以将调试器中的“黄色标记”拖放到提交之后的某个位置,以便跳过提交。 我有时还会将变量设置为null并以这种方式引发崩溃。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM