title: Error - The transaction associated with the current connection has completed but has not been disposed
body: <p>I've been having trouble using the <code>TransactionScope</code> to wrap multiple database queries into a transaction, I am using SqlBulkCopy with batchsize 500. When I increased the batch size to 1000 I am getting the error:</p>
  
  <blockquote>
    <p>The transaction associated with the current connection has completed
    but has not been disposed. The transaction must be disposed before the
    connection can be used to execute SQL statements.</p>
  </blockquote>
  
  <p>This is the code I am using:</p>
  
  <pre><code>using (var scope = new TransactionScope())
  {
      using (var connection = (SqlConnection)customerTable.OpenConnection())
      {
          var table1BulkCopy = new SqlBulkCopy(connection)
          {
              BatchSize = BATCH_SIZE,
              DestinationTableName = TableName1
          };
  
          table1BulkCopy.WriteToServer(table1DataTable);
  
          var table2BulkCopy = new SqlBulkCopy(connection)
          {
              BatchSize = BATCH_SIZE,
              DestinationTableName = TableName2
          };
  
          table2BulkCopy.WriteToServer(table2DataTable);
  
          var table3BulkCopy = new SqlBulkCopy(connection)
          {
              BatchSize = BATCH_SIZE,
              DestinationTableName = TableName3
          };
  
          table1BulkCopy.WriteToServer(table3DataTable);
  
          var table4BulkCopy = new SqlBulkCopy(connection)
          {
              BatchSize = BATCH_SIZE,
              DestinationTableName = TableName4
          };
  
          table4BulkCopy.WriteToServer(table4DataTable);
  
          scope.Complete();
      }
  }
  </code></pre>