【发布时间】:2011-09-19 11:45:19
【问题描述】:
我有一个 vb.net 网络应用程序,我正在将一个 SQL 连接和一个事务传递给一个将单个记录写入数据库的方法。
我想为每条写入的记录启动并提交一个事务,但使用相同的 sql 连接,直到循环完成。
我看到的一个方法是使用 using 语句,但它对我不起作用。它第一次运行并在第二次出现错误,表明事务已经提交
Using sqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
sqlConnection.Open()
Using transaction = sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted)
For Each user In users
Try
myDataWriteMethod(user, conn, tr)
Catch ex As Exception
tranaction.rollback()
End Try
transaction.commit()
Next
End Using
End Using
【问题讨论】:
-
你能发布一些代码
-
除了您的问题的答案之外,您的错误处理永远不会正常工作 - 您将回滚事务,退出
Try块,然后尝试提交相同的事务。如果您想单独提交每个循环迭代,请将提交移到Try块内,作为Catch块之前的最后一条语句。
标签: sql vb.net transactions