【发布时间】:2020-01-06 21:40:32
【问题描述】:
我试图在 .NET 的 1 个事务中运行 2 个 SQL 命令(1 个读取,1 个删除)。这就是我正在做的事情:
Using tran = objConn.BeginTransaction(IsolationLevel.Serializable)
Using command As New SqlCommand("SELECT foo FROM bar WHERE cost > 1", objConn)
command.Transaction = tran
Using dr As SqlDataReader = scOnDemand.ExecuteReader()
While dr.Read
some_list.Add(dr("foo"))
End While
End Using
End Using
Using command As New SqlCommand("DELETE FROM bar WHERE cost > 1", objConn)
command.Transaction = tran
command.ExecuteNonQuery() //Doesn't do anything
End Using
End Using
我们的想法是让这 2 个查询保持原子性,但由于某种原因,DELETE 不起作用。 SqlDataReader 读起来很好,它确实进入了第二个 using 语句,但 command.ExecuteNonQuery() 似乎没有做任何事情。为什么它不起作用?
【问题讨论】:
标签: .net sql-server vb.net