并发问题如何解决。。。

zhobin 2005-10-10 03:18:33
如果用户打开一个订单,但是没有马上处理,这时这个订单被另一个用户处理了,如果前一个用户再去处理,就不正确了,要如何避免这种情况
...全文
146 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sean8 2006-01-04
  • 打赏
  • 举报
回复
在update前检查状态
zhobin 2005-10-10
  • 打赏
  • 举报
回复
不能用事务,因为用户没有马上处理,如果在查询信息后就开起事务,而用户没有马上处理,会将相关表都锁上
zhobin 2005-10-10
  • 打赏
  • 举报
回复
不能用事务,因为用户没有马上处理,如果在查询信息后就开起事务,而用户没有马上处理,会将相关表都锁上
lang11zi 2005-10-10
  • 打赏
  • 举报
回复
同意用事务。具体要看看资料
feiyun0112 2005-10-10
  • 打赏
  • 举报
回复
用时间戳
GDNPC 2005-10-10
  • 打赏
  • 举报
回复
sorry,发错
GDNPC 2005-10-10
  • 打赏
  • 举报
回复
说错了,用单引号包着
<a href='Boards.aspx?asortID=<%# DataBinder.Eval(Container.DataItem,"assortID")%>& assortName=<%# DataBinder.Eval(Container.DataItem,"assortName")%>'>
GDNPC 2005-10-10
  • 打赏
  • 举报
回复
用事务。
private SqlTransaction _trans=null;
/// <summary>
/// 开始一个事务(读锁)
/// </summary>
public void BeginTransactionRC()
{
if(_conn!=null)
{
_trans=_conn.BeginTransaction(IsolationLevel.ReadCommitted);
}
}

/// <summary>
/// 提交一个事务
/// </summary>
public void TransCommit()
{
if(_trans!=null)
{
try
{
_trans.Commit();
_trans=null;
}
catch(Exception ex)
{
throw ex;
}
}
}

/// <summary>
/// 回滚一个事务
/// </summary>
public void RollBack()
{
if(_trans!=null)
{
try
{
_trans.Rollback();
_trans=null;
}
catch(Exception ex)
{
throw ex;
}
}
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧