internal static int SaveFormula(Formula formula)
 {
     int result = 0;
     if (formula == null) { return result; }
     using (var con = OpenOrCreateDb())
     {
         try
         {
             using (var command = con.CreateCommand())
             {
                 command.CommandText = formula.Id == 0
                     ? string.Format("insert into calcFormula (formulaName, formulaExpression) values('{0}', '{1}')",
                                     formula.Name, formula.Expression)
                     : string.Format("update calcFormula set formulaName='{0}', formulaExpression='{1}' where formulaid={2}",
                                     formula.Name, formula.Expression, formula.Id);
                 command.ExecuteNonQuery();
                 if (formula.Id == 0)
                 {
                     command.CommandText = "select max(formulaid) from calcFormula";
                     result = (int)command.ExecuteScalar();
                 }
                 else
                 {
                     result = formula.Id;
                 }
             }
         }
         catch { }
         finally { con.Close(); }
     }
     return result;
 }
 internal static void RemoveFormula(Formula formula)
 {
     if (formula == null) { return; }
     using (var con = OpenOrCreateDb())
     {
         try
         {
             using (var command = con.CreateCommand())
             {
                 command.CommandText = "delete calcFormulaParams where formulaId = " + formula.Id;
                 command.ExecuteNonQuery();
                 command.CommandText = "delete CalcFormula where formulaId = " + formula.Id;
                 command.ExecuteNonQuery();
             }
         }
         catch { }
         finally { con.Close(); }
     }
 }