title: Transactions in C#
body: <p>In addition to this question: <a href="https://stackoverflow.com/questions/577080/preorder-tree-traversal-copy-folder">Preorder tree traversal copy folder</a>
  I was wondering if it is possible to create a transaction that contains different calls to the database.</p>
  
  <p>ex: </p>
  
  <pre><code>public bool CopyNode(int nodeId, int parentNode)
      { 
          // Begin transaction.
          try
          {
              Method1(nodeId);
              Method2(nodeId, parentNode);
              Method3(nodeId);
          }
          catch (System.Exception ex)
          { 
              //rollback all the methods
          }
      }
  </code></pre>
  
  <p>I don't know if this is possible. We are using subsonic to do the database calls.
  This is really important, not only for the tree traversal problem but also for some other stuff we do.</p>
  
  <p>The main idea is that we can't let our dabase get corrupted with uncomplete data.</p>