c# - MSSqlServer 错误:事务完成
问题描述
我在尝试处理事务时遇到错误。没有它一切运行正常,但有了它我得到一个奇怪的错误:事务已完成,不能再使用(我的错误翻译)
这是我的代码,直到出现错误:
using (var conn = new SqlConnection(gl.constr))
{
using (SqlCommand cm = new SqlCommand())
{
conn.Open();
using (SqlTransaction tr = conn.BeginTransaction())
{
try
{
cm.Connection = conn;
cm.Transaction = tr;
cm.CommandText = "INSERT INTO Bookings (Time, Price, BookingRef, BookingInternalRef)" +
" VALUES(" +
"getdate(), "+ sPrice + ", " +
db.AddAphens(reference) + ", " +
db.AddAphens(internalBookref) +
")";
cm.ExecuteNonQuery(); //this works
tr.Commit();
在提交错误弹出窗口。
解决方案
SqlTransaction tr = conn.BeginTransaction()
单个 DML 操作不需要显式事务声明,因为每个 DML 操作都将是隐式事务绑定的。因此,您可以一起删除您的交易声明,它应该可以正常工作
推荐阅读
- elasticsearch - 如何在 ElasticSearch 或 SOLR 中为共享文件夹建模?
- outlook - 将 Sendgrid 和 Outlook SPF 记录添加到域 dns 设置
- magento - Magento2 在多个网站上仅共享用户登录
- android - Android:无法将文件共享到 Google Drive,但我可以撰写电子邮件
- python - 完整的 n 位因子
- django - Django检查模板中的表单字段属性
- flutter - 将主抽屉添加到颤动的按钮
- javascript - js事件时套接字php到java
- c - OpenGL:我自己实现的截锥体函数导致黑屏
- javascript - 如何将 fetch api 与 .cfm 文件一起使用?