【发布时间】:2016-04-08 07:12:47
【问题描述】:
在 C# dbtransaction 中使用单个 SQL Server 表进行多次插入和更新时出现问题。
以下是步骤:
- 在 try 块中启动事务。
- 我使用事务中的存储过程将一行插入到 SQL Server 表中,该事务返回插入的 ID
- 我必须更新上面插入行的列
- 如果成功则我必须提交,否则如果失败则在 catch 中回滚
问题是插入行后它不会更新,因为它会在更新时给出超时错误(因为我认为它在插入后锁定了一个表)。
插入后如何更新?
这是我的代码:
using (var transaction = cnctn.BeginTransaction())
{
try
{
var ID = InsertInEmployeeTable(Employee); // inserted successfully
var Status = UpdateInEmployeeTable(ID,"Description"); // here timeout error happens
transaction.Commit();
}
catch(SqlException sqlError)
{
transaction.Rollback();
}
}
【问题讨论】:
-
如果没有来自两次插入和更新调用的代码,任何答案都只是一个疯狂的猜测
标签: c# asp.net sql-server