Я пытаюсь выполнить 2 SQL команды (1 чтение, 1 удаление) в течение 1 транзакции в. NET. Вот что я делаю:
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 запросов c, но по какой-то причине DELETE не работает. SqlDataReader
читается просто отлично, и он go во втором using
выражении, но command.ExecuteNonQuery()
, похоже, ничего не делает. Любая причина, почему это не работает?