title: C# using SqliteCommand
body: <p>Is it some manuals that describing how often <code>SqliteCommand</code> can be used. And what is situation that needed to be avoid?    </p>
  
  <p>What dangerous can contains this code with many functions?</p>
  
  <pre><code>private void UpgradeDataBaseEmptyColumn()
  {
      var connection = GetConnection();
      {
          AddColumnIsEmpty(connection);
          Thread t = new Thread(() =&gt;
              {
                  ProcessIsEmptyColumn(connection);
              });
          t.IsBackground = true;
          t.Start();
      }
  }
  </code></pre>
  
  <p>function <code>AddColumnIsEmpty</code></p>
  
  <pre><code>private void AddColumnIsEmpty(SQLiteConnection connection)
  {
      using (SQLiteCommand command = new SQLiteCommand(connection))
      {
          //SOmething done
      }
  }
  </code></pre>
  
  <p>function <code>ProcessIsEmptyColumn</code></p>
  
  <pre><code>public void ProcessIsEmptyColumn(SQLiteConnection connection)
  {
      using (SQLiteCommand command = new SQLiteCommand(connection))
      {
          foreach (var item in getEmptyItemsNotUpdated(connection))
          {
              using (SQLiteTransaction transaction = connection.BeginTransaction())
              {
                  //Something doe
                  transaction.Commit();
              }
          }
      }
  </code></pre>
  
  <p>function <code>getEmptyItemsNotUpdated</code></p>
  
  <pre><code>private List&lt;int&gt; getEmptyItemsNotUpdated(SQLiteConnection connection)
  {
      using (SQLiteCommand command = new SQLiteCommand(connection))
      {
          //return idToUpdate;
      }
  }
  </code></pre>