C# 当我从客户端应用程序调用sql存储过程时,是否可能引发DBCurrencyException?

C# 当我从客户端应用程序调用sql存储过程时,是否可能引发DBCurrencyException?,c#,sql,sql-server,visual-studio,visual-studio-2012,C#,Sql,Sql Server,Visual Studio,Visual Studio 2012,我有一项任务(我是学生)。我需要调用DBCurrencyException。当我从更改数据库数据的客户端应用程序调用sql存储过程时,是否可能引发DBCurrencyException?可能吗?默认情况下,ADO.Net数据集使用乐观并发。如果在数据库中不再存在行时尝试将该行更新到数据库中,则结果是错误:并发冲突:UpdateCommand影响了预期的1条记录中的0条 下面是可能发生该错误的场景 // data row has been added DataRow dr= null; dtT

我有一项任务(我是学生)。我需要调用DBCurrencyException。当我从更改数据库数据的客户端应用程序调用sql存储过程时,是否可能引发DBCurrencyException?可能吗?

默认情况下,ADO.Net数据集使用乐观并发。如果在数据库中不再存在行时尝试将该行更新到数据库中,则结果是错误:并发冲突:UpdateCommand影响了预期的1条记录中的0条

下面是可能发生该错误的场景

// data row has been added 
DataRow dr= null;

dtTab = (DataTable)Session("dtTab");

dr = dtTab.Rows(e.RowIndex);

dr.Delete();

dtTab.AcceptChanges();


// If Acceptchanges() being not called, row status will be 
//detached, that will not be updated to database.

//Without updating database Acceptchanges() called.Row status 
//changed to deleted. If this update to database, 
// it will give concurrency error-   
// because row no longer exist in database. 
错误的原因显而易见。数据库中不存在表中行中的记录。但是,delete命令试图从数据库中删除它们。当数据适配器类试图删除一条记录,但没有看到任何行被更改时,它假定发生了并发冲突

下面是关于这个问题的(上述代码的源代码)。本文描述 何时引发DBConcurrencyException以及如何解决 问题请检查一下这张照片

请尝试与存储过程相同的方法,这可能会对您有所帮助。


DbCurrencyException是您创建的类吗?然后在需要时抛出新的DbCurrencyException。如果你需要进一步的帮助,你需要发布给你带来麻烦的代码。我有一个任务。我必须提出这个例外。