gpt4 book ai didi

sql - 对多个事务使用一个 SQL 连接

转载 作者:行者123 更新时间:2023-12-01 01:26:32 25 4
gpt4 key购买 nike

我有一个 vb.net web 应用程序,我正在将一个 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

最佳答案

看起来好像您在 for 循环的每一步都在提交或回滚事务。您可能需要 (1) 为每个用户开始一个新的交易,例如,

Using sqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
sqlConnection.Open()
For Each user In users
Using transaction = sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted)
...

或 (2) 仅在最后提交或回滚事务,例如
Using sqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
sqlConnection.Open()
Using transaction = sqlConnection.BeginTransaction(IsolationLevel.ReadCommitted)

Try
For Each user In users
myDataWriteMethod(user, conn, tr)
Next
Catch ex As Exception
tranaction.rollback()
End Try

transaction.commit()
End Using
End Using

请注意,我不是 VB.NET 程序员,所以我的语法可能是错误的。

关于sql - 对多个事务使用一个 SQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7470401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com