【问题标题】:Any chance of failing one query while using two queries in ExecuteScalar在 ExecuteScalar 中使用两个查询时一个查询失败的可能性
【发布时间】:2011-05-31 10:25:05
【问题描述】:

我编写了一个查询,它是一个复合查询,例如一个更新查询和一个插入查询。 我正在使用 ExecuteScalar。 是否有可能一个查询失败而另一个查询成功。 如果其中一个查询错误,则将是全部失败或部分失败。

有人可以帮忙:)

【问题讨论】:

  • 你可以使用 ExecuteNonQuery

标签: c# asp.net sql executescalar


【解决方案1】:

无论您如何调用它;对于复合操作,完全有可能第一个操作成功而第二个操作失败(例如,唯一键违规或外键违规)。如果您需要确保全有或全无,请在对 Execute* 的调用中加上一个事务,并且仅在您知道一切正常时才提交。

您也可以在 SQL 级别创建事务,但如果您在 TSQL 中执行,您可以使用的工具更容易出错。它确实,为了给予应有的荣誉,避免了几次往返——但通常没有那么多,值得为语言而战。归根结底,SQL 是为良好的基于​​集合的 DML 操作而设计的——它在执行流管理等程序化代码方面并不那么好。

【讨论】:

    【解决方案2】:

    是的,您的一个查询可能会失败而其他查询会执行。以及为什么不使用 ExecuteNonQuery 而不是 ExecuteScalar。对于这些类型的场景,最好使用“事务”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-31
      • 2014-10-05
      • 2023-03-26
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      相关资源
      最近更新 更多